Fix non-const-ref params in CLZWDecoder::Decode().

Change them to pointers and fix some nits.

Change-Id: I44310ba657525f6cca0f114d1b33359bd4aafcea
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56210
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcodec/codec/flatemodule.cpp b/core/fxcodec/codec/flatemodule.cpp
index d3358b4..b69eaa1 100644
--- a/core/fxcodec/codec/flatemodule.cpp
+++ b/core/fxcodec/codec/flatemodule.cpp
@@ -108,11 +108,11 @@
 
 class CLZWDecoder {
  public:
-  int Decode(uint8_t* output,
-             uint32_t& outlen,
-             const uint8_t* input,
-             uint32_t& size,
-             bool bEarlyChange);
+  int 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);
@@ -164,21 +164,21 @@
 }
 
 int CLZWDecoder::Decode(uint8_t* dest_buf,
-                        uint32_t& dest_size,
+                        uint32_t* dest_size,
                         const uint8_t* src_buf,
-                        uint32_t& src_size,
-                        bool bEarlyChange) {
+                        uint32_t* src_size,
+                        bool early_change) {
   m_CodeLen = 9;
   m_InPos = 0;
   m_OutPos = 0;
   m_pInput = src_buf;
   m_pOutput = dest_buf;
-  m_Early = bEarlyChange ? 1 : 0;
+  m_Early = early_change;
   m_nCodes = 0;
   uint32_t old_code = 0xFFFFFFFF;
   uint8_t last_char = 0;
   while (1) {
-    if (m_InPos + m_CodeLen > src_size * 8) {
+    if (m_InPos + m_CodeLen > *src_size * 8) {
       break;
     }
     int byte_pos = m_InPos / 8;
@@ -201,7 +201,7 @@
     if (code == 257)
       break;
     if (code < 256) {
-      if (m_OutPos == dest_size) {
+      if (m_OutPos == *dest_size) {
         return -5;
       }
       if (m_pOutput) {
@@ -230,7 +230,7 @@
       } else {
         DecodeString(code);
       }
-      if (m_OutPos + m_StackLen > dest_size) {
+      if (m_OutPos + m_StackLen > *dest_size) {
         return -5;
       }
       if (m_pOutput) {
@@ -243,8 +243,8 @@
       if (old_code < 256) {
         AddCode(old_code, last_char);
       } else if (old_code - 258 >= m_nCodes) {
-        dest_size = m_OutPos;
-        src_size = (m_InPos + 7) / 8;
+        *dest_size = m_OutPos;
+        *src_size = (m_InPos + 7) / 8;
         return 0;
       } else {
         AddCode(old_code, last_char);
@@ -252,8 +252,8 @@
       old_code = code;
     }
   }
-  dest_size = m_OutPos;
-  src_size = (m_InPos + 7) / 8;
+  *dest_size = m_OutPos;
+  *src_size = (m_InPos + 7) / 8;
   return 0;
 }
 
@@ -801,7 +801,7 @@
     auto decoder = pdfium::MakeUnique<CLZWDecoder>();
     *dest_size = 0xFFFFFFFF;
     offset = src_span.size();
-    int err = decoder->Decode(nullptr, *dest_size, src_span.data(), offset,
+    int err = decoder->Decode(nullptr, dest_size, src_span.data(), &offset,
                               bEarlyChange);
     if (err || *dest_size == 0 || *dest_size + 1 < *dest_size)
       return FX_INVALID_OFFSET;
@@ -810,7 +810,7 @@
     dest_buf->reset(FX_Alloc(uint8_t, *dest_size + 1));
     uint8_t* dest_buf_ptr = dest_buf->get();
     dest_buf_ptr[*dest_size] = '\0';
-    decoder->Decode(dest_buf_ptr, *dest_size, src_span.data(), offset,
+    decoder->Decode(dest_buf_ptr, dest_size, src_span.data(), &offset,
                     bEarlyChange);
   } else {
     FlateUncompress(src_span, estimated_size, dest_buf, dest_size, &offset);