Add CFX_BmpDecompressor::ReadNextScanline().

All the ReadScanline() calls pass in the same arguments. Place those
inside ReadScanline() and rename the method to better reflect what it
does now. Also change the |row_num_| and |col_num_| member variables
from type size_t to uint32_t, since their range is limited by
|kBmpMaxImageDimension|.

Change-Id: Id05da4fd7b5f368b0c80937bebd49c803e05dbcf
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56050
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
index 63aa145..e727147 100644
--- a/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
+++ b/core/fxcodec/bmp/cfx_bmpdecompressor.cpp
@@ -61,9 +61,10 @@
   longjmp(jmpbuf_, 1);
 }
 
-void CFX_BmpDecompressor::ReadScanline(uint32_t row_num,
-                                       const std::vector<uint8_t>& row_buf) {
-  context_->m_pDelegate->BmpReadScanline(row_num, row_buf);
+void CFX_BmpDecompressor::ReadNextScanline() {
+  uint32_t row = img_tb_flag_ ? row_num_ : (height_ - 1 - row_num_);
+  context_->m_pDelegate->BmpReadScanline(row, out_row_buffer_);
+  ++row_num_;
 }
 
 bool CFX_BmpDecompressor::GetDataPosition(uint32_t rcd_pos) {
@@ -440,8 +441,7 @@
       if (!ValidateColorIndex(byte))
         return 0;
     }
-    ReadScanline(img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                 out_row_buffer_);
+    ReadNextScanline();
   }
   SaveDecodingStatus(DecodeStatus::kTail);
   return 1;
@@ -467,19 +467,15 @@
               NOTREACHED();
             }
 
-            ReadScanline(img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                         out_row_buffer_);
+            ReadNextScanline();
             col_num_ = 0;
             std::fill(out_row_buffer_.begin(), out_row_buffer_.end(), 0);
             SaveDecodingStatus(DecodeStatus::kData);
             continue;
           }
           case kRleEoi: {
-            if (row_num_ < height_) {
-              ReadScanline(
-                  img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                  out_row_buffer_);
-            }
+            if (row_num_ < height_)
+              ReadNextScanline();
             SaveDecodingStatus(DecodeStatus::kTail);
             return 1;
           }
@@ -497,9 +493,7 @@
 
             while (row_num_ < bmp_row_num__next) {
               std::fill(out_row_buffer_.begin(), out_row_buffer_.end(), 0);
-              ReadScanline(
-                  img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                  out_row_buffer_);
+              ReadNextScanline();
             }
             break;
           }
@@ -571,19 +565,15 @@
               NOTREACHED();
             }
 
-            ReadScanline(img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                         out_row_buffer_);
+            ReadNextScanline();
             col_num_ = 0;
             std::fill(out_row_buffer_.begin(), out_row_buffer_.end(), 0);
             SaveDecodingStatus(DecodeStatus::kData);
             continue;
           }
           case kRleEoi: {
-            if (row_num_ < height_) {
-              ReadScanline(
-                  img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                  out_row_buffer_);
-            }
+            if (row_num_ < height_)
+              ReadNextScanline();
             SaveDecodingStatus(DecodeStatus::kTail);
             return 1;
           }
@@ -601,9 +591,7 @@
 
             while (row_num_ < bmp_row_num__next) {
               std::fill(out_row_buffer_.begin(), out_row_buffer_.end(), 0);
-              ReadScanline(
-                  img_tb_flag_ ? row_num_++ : (height_ - 1 - row_num_++),
-                  out_row_buffer_);
+              ReadNextScanline();
             }
             break;
           }
diff --git a/core/fxcodec/bmp/cfx_bmpdecompressor.h b/core/fxcodec/bmp/cfx_bmpdecompressor.h
index 1f88c73..5144b98 100644
--- a/core/fxcodec/bmp/cfx_bmpdecompressor.h
+++ b/core/fxcodec/bmp/cfx_bmpdecompressor.h
@@ -49,7 +49,7 @@
   };
 
   bool GetDataPosition(uint32_t cur_pos);
-  void ReadScanline(uint32_t row_num, const std::vector<uint8_t>& row_buf);
+  void ReadNextScanline();
   int32_t DecodeRGB();
   int32_t DecodeRLE8();
   int32_t DecodeRLE4();
@@ -77,8 +77,8 @@
   int32_t pal_type_ = 0;
   uint32_t data_size_ = 0;
   uint32_t img_ifh_size_ = 0;
-  size_t row_num_ = 0;
-  size_t col_num_ = 0;
+  uint32_t row_num_ = 0;
+  uint32_t col_num_ = 0;
   int32_t dpi_x_ = 0;
   int32_t dpi_y_ = 0;
   uint32_t mask_red_ = 0;