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;