ProgressiveDecoder: switch over loops, part 4

Also deal with remaining needless assignments of 0.

Change-Id: Ife7928e5c65f2843902967edd5321b742ded02d5
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/81978
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcodec/progressive_decoder.cpp b/core/fxcodec/progressive_decoder.cpp
index 00486cc..fede3e8 100644
--- a/core/fxcodec/progressive_decoder.cpp
+++ b/core/fxcodec/progressive_decoder.cpp
@@ -666,12 +666,9 @@
       case FXDIB_Format::kRgb:
       case FXDIB_Format::kRgb32:
         for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
-          uint32_t dest_b = 0;
-          uint32_t dest_g = 0;
-          uint32_t dest_r = 0;
-          dest_b += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_g += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_r += pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_b = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_g = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_r = pWeight->m_Weights[0] * (*scan_src1++);
           scan_src1 += dest_Bpp - 3;
           dest_b += pWeight->m_Weights[1] * (*scan_src2++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
@@ -685,14 +682,10 @@
         break;
       case FXDIB_Format::kArgb:
         for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
-          uint32_t dest_a = 0;
-          uint32_t dest_b = 0;
-          uint32_t dest_g = 0;
-          uint32_t dest_r = 0;
-          dest_b += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_g += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_r += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_a += pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_b = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_g = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_r = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_a = pWeight->m_Weights[0] * (*scan_src1++);
           dest_b += pWeight->m_Weights[1] * (*scan_src2++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
           dest_r += pWeight->m_Weights[1] * (*scan_src2++);
@@ -944,12 +937,9 @@
       case FXDIB_Format::kRgb:
       case FXDIB_Format::kRgb32:
         for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
-          uint32_t dest_b = 0;
-          uint32_t dest_g = 0;
-          uint32_t dest_r = 0;
-          dest_b += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_g += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_r += pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_b = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_g = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_r = pWeight->m_Weights[0] * (*scan_src1++);
           scan_src1 += dest_Bpp - 3;
           dest_b += pWeight->m_Weights[1] * (*scan_src2++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
@@ -963,14 +953,10 @@
         break;
       case FXDIB_Format::kArgb:
         for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
-          uint32_t dest_a = 0;
-          uint32_t dest_b = 0;
-          uint32_t dest_g = 0;
-          uint32_t dest_r = 0;
-          dest_b += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_g += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_r += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_a += pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_b = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_g = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_r = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_a = pWeight->m_Weights[0] * (*scan_src1++);
           dest_b += pWeight->m_Weights[1] * (*scan_src2++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
           dest_r += pWeight->m_Weights[1] * (*scan_src2++);
@@ -1130,41 +1116,39 @@
     int32_t dest_line,
     uint8_t* src_scan,
     FXCodec_Format src_format) {
-  uint8_t* dest_scan = pDeviceBitmap->GetWritableScanline(dest_line);
   int32_t src_Bpp = (m_SrcFormat & 0xff) >> 3;
   int32_t dest_Bpp = pDeviceBitmap->GetBPP() >> 3;
   int32_t src_left = m_clipBox.left;
   int32_t dest_left = m_startX;
   src_scan += src_left * src_Bpp;
-  dest_scan += dest_left * dest_Bpp;
-  for (int32_t dest_col = 0; dest_col < m_sizeX; dest_col++) {
-    PixelWeight* pPixelWeights = m_WeightHorzOO.GetPixelWeight(dest_col);
-    switch (pDeviceBitmap->GetFormat()) {
-      case FXDIB_Format::k1bppMask:
-      case FXDIB_Format::k1bppRgb:
-        NOTREACHED();
+  uint8_t* dest_scan =
+      pDeviceBitmap->GetWritableScanline(dest_line) + dest_left * dest_Bpp;
+  switch (pDeviceBitmap->GetFormat()) {
+    case FXDIB_Format::k1bppMask:
+    case FXDIB_Format::k1bppRgb:
+      NOTREACHED();
+      return;
+    case FXDIB_Format::k8bppMask:
+    case FXDIB_Format::k8bppRgb:
+      if (pDeviceBitmap->HasPalette())
         return;
-      case FXDIB_Format::k8bppMask:
-      case FXDIB_Format::k8bppRgb: {
-        if (pDeviceBitmap->HasPalette())
-          return;
-
-        uint32_t dest_g = 0;
-        dest_g +=
+      for (int32_t dest_col = 0; dest_col < m_sizeX; dest_col++) {
+        PixelWeight* pPixelWeights = m_WeightHorzOO.GetPixelWeight(dest_col);
+        uint32_t dest_g =
             pPixelWeights->m_Weights[0] * src_scan[pPixelWeights->m_SrcStart];
         dest_g +=
             pPixelWeights->m_Weights[1] * src_scan[pPixelWeights->m_SrcEnd];
         *dest_scan++ = (uint8_t)(dest_g >> 16);
-      } break;
-      case FXDIB_Format::kRgb:
-      case FXDIB_Format::kRgb32: {
-        uint32_t dest_b = 0;
-        uint32_t dest_g = 0;
-        uint32_t dest_r = 0;
+      }
+      break;
+    case FXDIB_Format::kRgb:
+    case FXDIB_Format::kRgb32:
+      for (int32_t dest_col = 0; dest_col < m_sizeX; dest_col++) {
+        PixelWeight* pPixelWeights = m_WeightHorzOO.GetPixelWeight(dest_col);
         const uint8_t* p = src_scan + pPixelWeights->m_SrcStart * src_Bpp;
-        dest_b += pPixelWeights->m_Weights[0] * (*p++);
-        dest_g += pPixelWeights->m_Weights[0] * (*p++);
-        dest_r += pPixelWeights->m_Weights[0] * (*p);
+        uint32_t dest_b = pPixelWeights->m_Weights[0] * (*p++);
+        uint32_t dest_g = pPixelWeights->m_Weights[0] * (*p++);
+        uint32_t dest_r = pPixelWeights->m_Weights[0] * (*p);
         p = src_scan + pPixelWeights->m_SrcEnd * src_Bpp;
         dest_b += pPixelWeights->m_Weights[1] * (*p++);
         dest_g += pPixelWeights->m_Weights[1] * (*p++);
@@ -1173,17 +1157,16 @@
         *dest_scan++ = (uint8_t)((dest_g) >> 16);
         *dest_scan++ = (uint8_t)((dest_r) >> 16);
         dest_scan += dest_Bpp - 3;
-      } break;
-      case FXDIB_Format::kArgb: {
-        uint32_t dest_a = 0;
-        uint32_t dest_b = 0;
-        uint32_t dest_g = 0;
-        uint32_t dest_r = 0;
+      }
+      break;
+    case FXDIB_Format::kArgb:
+      for (int32_t dest_col = 0; dest_col < m_sizeX; dest_col++) {
+        PixelWeight* pPixelWeights = m_WeightHorzOO.GetPixelWeight(dest_col);
         const uint8_t* p = src_scan + pPixelWeights->m_SrcStart * src_Bpp;
-        dest_b += pPixelWeights->m_Weights[0] * (*p++);
-        dest_g += pPixelWeights->m_Weights[0] * (*p++);
-        dest_r += pPixelWeights->m_Weights[0] * (*p++);
-        dest_a += pPixelWeights->m_Weights[0] * (*p);
+        uint32_t dest_b = pPixelWeights->m_Weights[0] * (*p++);
+        uint32_t dest_g = pPixelWeights->m_Weights[0] * (*p++);
+        uint32_t dest_r = pPixelWeights->m_Weights[0] * (*p++);
+        uint32_t dest_a = pPixelWeights->m_Weights[0] * (*p);
         p = src_scan + pPixelWeights->m_SrcEnd * src_Bpp;
         dest_b += pPixelWeights->m_Weights[1] * (*p++);
         dest_g += pPixelWeights->m_Weights[1] * (*p++);
@@ -1193,10 +1176,10 @@
         *dest_scan++ = (uint8_t)((dest_g) >> 16);
         *dest_scan++ = (uint8_t)((dest_r) >> 16);
         *dest_scan++ = (uint8_t)((dest_a) >> 16);
-      } break;
-      default:
-        return;
-    }
+      }
+      break;
+    default:
+      return;
   }
 }
 
@@ -2013,30 +1996,28 @@
     const uint8_t* scan_src2 =
         pDeviceBitmap->GetScanline(pWeight->m_SrcEnd + dest_top) +
         dest_ScanOffet;
-    for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
-      switch (pDeviceBitmap->GetFormat()) {
-        case FXDIB_Format::kInvalid:
-        case FXDIB_Format::k1bppMask:
-        case FXDIB_Format::k1bppRgb:
+    switch (pDeviceBitmap->GetFormat()) {
+      case FXDIB_Format::kInvalid:
+      case FXDIB_Format::k1bppMask:
+      case FXDIB_Format::k1bppRgb:
+        return;
+      case FXDIB_Format::k8bppMask:
+      case FXDIB_Format::k8bppRgb:
+        if (pDeviceBitmap->HasPalette())
           return;
-        case FXDIB_Format::k8bppMask:
-        case FXDIB_Format::k8bppRgb: {
-          if (pDeviceBitmap->HasPalette())
-            return;
-
+        for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
           uint32_t dest_g = 0;
           dest_g += pWeight->m_Weights[0] * (*scan_src1++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
           *scan_des++ = (uint8_t)(dest_g >> 16);
-        } break;
-        case FXDIB_Format::kRgb:
-        case FXDIB_Format::kRgb32: {
-          uint32_t dest_b = 0;
-          uint32_t dest_g = 0;
-          uint32_t dest_r = 0;
-          dest_b += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_g += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_r += pWeight->m_Weights[0] * (*scan_src1++);
+        }
+        break;
+      case FXDIB_Format::kRgb:
+      case FXDIB_Format::kRgb32:
+        for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
+          uint32_t dest_b = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_g = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_r = pWeight->m_Weights[0] * (*scan_src1++);
           scan_src1 += dest_Bpp - 3;
           dest_b += pWeight->m_Weights[1] * (*scan_src2++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
@@ -2046,16 +2027,14 @@
           *scan_des++ = (uint8_t)((dest_g) >> 16);
           *scan_des++ = (uint8_t)((dest_r) >> 16);
           scan_des += dest_Bpp - 3;
-        } break;
-        case FXDIB_Format::kArgb: {
-          uint32_t dest_a = 0;
-          uint32_t dest_b = 0;
-          uint32_t dest_g = 0;
-          uint32_t dest_r = 0;
-          dest_b += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_g += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_r += pWeight->m_Weights[0] * (*scan_src1++);
-          dest_a += pWeight->m_Weights[0] * (*scan_src1++);
+        }
+        break;
+      case FXDIB_Format::kArgb:
+        for (int dest_col = 0; dest_col < m_sizeX; dest_col++) {
+          uint32_t dest_b = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_g = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_r = pWeight->m_Weights[0] * (*scan_src1++);
+          uint32_t dest_a = pWeight->m_Weights[0] * (*scan_src1++);
           dest_b += pWeight->m_Weights[1] * (*scan_src2++);
           dest_g += pWeight->m_Weights[1] * (*scan_src2++);
           dest_r += pWeight->m_Weights[1] * (*scan_src2++);
@@ -2064,10 +2043,10 @@
           *scan_des++ = (uint8_t)((dest_g) >> 16);
           *scan_des++ = (uint8_t)((dest_r) >> 16);
           *scan_des++ = (uint8_t)((dest_a) >> 16);
-        } break;
-        default:
-          return;
-      }
+        }
+        break;
+      default:
+        return;
     }
   }
   int dest_bottom = dest_top + m_sizeY;