Change CLZWDecoder::Decode() to return a bool.

The only caller that checks the return value does not care what the
exact error condition is.

Change-Id: Ib0e4b8e5963f9b2789b28dca6fc72aa0de8046f4
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56231
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcodec/codec/flatemodule.cpp b/core/fxcodec/codec/flatemodule.cpp
index 0ac9dd1..eb51421 100644
--- a/core/fxcodec/codec/flatemodule.cpp
+++ b/core/fxcodec/codec/flatemodule.cpp
@@ -108,11 +108,11 @@
 
 class CLZWDecoder {
  public:
-  int Decode(uint8_t* dest_buf,
-             uint32_t* dest_size,
-             const uint8_t* src_buf,
-             uint32_t* src_size,
-             bool early_change);
+  bool Decode(uint8_t* dest_buf,
+              uint32_t* dest_size,
+              const uint8_t* src_buf,
+              uint32_t* src_size,
+              bool early_change);
 
  private:
   void AddCode(uint32_t prefix_code, uint8_t append_char);
@@ -163,11 +163,11 @@
   m_DecodeStack[m_StackLen++] = (uint8_t)code;
 }
 
-int CLZWDecoder::Decode(uint8_t* dest_buf,
-                        uint32_t* dest_size,
-                        const uint8_t* src_buf,
-                        uint32_t* src_size,
-                        bool early_change) {
+bool CLZWDecoder::Decode(uint8_t* dest_buf,
+                         uint32_t* dest_size,
+                         const uint8_t* src_buf,
+                         uint32_t* src_size,
+                         bool early_change) {
   m_CodeLen = 9;
   m_InPos = 0;
   m_OutPos = 0;
@@ -193,19 +193,17 @@
     } else {
       bit_left -= 8;
       code |= m_pInput[byte_pos++] << bit_left;
-      if (bit_left) {
+      if (bit_left)
         code |= m_pInput[byte_pos] >> (8 - bit_left);
-      }
     }
     m_InPos += m_CodeLen;
 
     if (code < 256) {
-      if (m_OutPos == *dest_size) {
-        return -5;
-      }
-      if (m_pOutput) {
+      if (m_OutPos == *dest_size)
+        return false;
+
+      if (m_pOutput)
         m_pOutput[m_OutPos] = (uint8_t)code;
-      }
       m_OutPos++;
       last_char = (uint8_t)code;
       if (old_code != 0xFFFFFFFF)
@@ -224,7 +222,7 @@
 
     // Case where |code| is 258 or greater.
     if (old_code == 0xFFFFFFFF)
-      return 2;
+      return false;
 
     m_StackLen = 0;
     if (code - 258 >= m_nCodes) {
@@ -236,7 +234,7 @@
       DecodeString(code);
     }
     if (m_OutPos + m_StackLen > *dest_size)
-      return -5;
+      return false;
 
     if (m_pOutput) {
       for (uint32_t i = 0; i < m_StackLen; i++)
@@ -253,7 +251,7 @@
   }
   *dest_size = m_OutPos;
   *src_size = (m_InPos + 7) / 8;
-  return 0;
+  return true;
 }
 
 uint8_t PathPredictor(int a, int b, int c) {
@@ -800,9 +798,9 @@
     auto decoder = pdfium::MakeUnique<CLZWDecoder>();
     *dest_size = 0xFFFFFFFF;
     offset = src_span.size();
-    int err = decoder->Decode(nullptr, dest_size, src_span.data(), &offset,
-                              bEarlyChange);
-    if (err || *dest_size == 0 || *dest_size + 1 < *dest_size)
+    bool success = decoder->Decode(nullptr, dest_size, src_span.data(), &offset,
+                                   bEarlyChange);
+    if (!success || *dest_size == 0 || *dest_size + 1 < *dest_size)
       return FX_INVALID_OFFSET;
 
     decoder = pdfium::MakeUnique<CLZWDecoder>();