Use more early returns in CFX_ScanlineCompositor.
Change CompositeByteMaskLine() and CompositeBitMaskLine() to use early
returns. Add TODOs since it is not obvious if the end of the methods are
reachable.
Change-Id: I76733c32925187b000a0563120930557239eb187
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/102733
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/dib/cfx_scanlinecompositor.cpp b/core/fxge/dib/cfx_scanlinecompositor.cpp
index d846612..74f0cf8 100644
--- a/core/fxge/dib/cfx_scanlinecompositor.cpp
+++ b/core/fxge/dib/cfx_scanlinecompositor.cpp
@@ -2545,10 +2545,16 @@
if (m_DestFormat == FXDIB_Format::k8bppMask) {
CompositeRow_ByteMask2Mask(dest_scan, src_scan, m_MaskAlpha, width,
clip_scan);
- } else if (GetBppFromFormat(m_DestFormat) == 8) {
+ return;
+ }
+
+ if (GetBppFromFormat(m_DestFormat) == 8) {
CompositeRow_ByteMask2Gray(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
width, clip_scan);
- } else if (m_bRgbByteOrder) {
+ return;
+ }
+
+ if (m_bRgbByteOrder) {
if (m_DestFormat == FXDIB_Format::kArgb) {
CompositeRow_ByteMask2Argb_RgbByteOrder(
dest_scan, src_scan, m_MaskAlpha, m_MaskRed, m_MaskGreen, m_MaskBlue,
@@ -2558,16 +2564,25 @@
dest_scan, src_scan, m_MaskAlpha, m_MaskRed, m_MaskGreen, m_MaskBlue,
width, m_BlendType, GetCompsFromFormat(m_DestFormat), clip_scan);
}
- } else if (m_DestFormat == FXDIB_Format::kArgb) {
+ return;
+ }
+
+ if (m_DestFormat == FXDIB_Format::kArgb) {
CompositeRow_ByteMask2Argb(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
m_MaskGreen, m_MaskBlue, width, m_BlendType,
clip_scan);
- } else if (m_DestFormat == FXDIB_Format::kRgb ||
- m_DestFormat == FXDIB_Format::kRgb32) {
+ return;
+ }
+
+ if (m_DestFormat == FXDIB_Format::kRgb ||
+ m_DestFormat == FXDIB_Format::kRgb32) {
CompositeRow_ByteMask2Rgb(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
m_MaskGreen, m_MaskBlue, width, m_BlendType,
GetCompsFromFormat(m_DestFormat), clip_scan);
+ return;
}
+
+ // TODO(thestig): Is this line reachable?
}
void CFX_ScanlineCompositor::CompositeBitMaskLine(
@@ -2579,10 +2594,16 @@
if (m_DestFormat == FXDIB_Format::k8bppMask) {
CompositeRow_BitMask2Mask(dest_scan, src_scan, m_MaskAlpha, src_left, width,
clip_scan);
- } else if (GetBppFromFormat(m_DestFormat) == 8) {
+ return;
+ }
+
+ if (GetBppFromFormat(m_DestFormat) == 8) {
CompositeRow_BitMask2Gray(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
src_left, width, clip_scan);
- } else if (m_bRgbByteOrder) {
+ return;
+ }
+
+ if (m_bRgbByteOrder) {
if (m_DestFormat == FXDIB_Format::kArgb) {
CompositeRow_BitMask2Argb_RgbByteOrder(
dest_scan, src_scan, m_MaskAlpha, m_MaskRed, m_MaskGreen, m_MaskBlue,
@@ -2593,17 +2614,26 @@
src_left, width, m_BlendType, GetCompsFromFormat(m_DestFormat),
clip_scan);
}
- } else if (m_DestFormat == FXDIB_Format::kArgb) {
+ return;
+ }
+
+ if (m_DestFormat == FXDIB_Format::kArgb) {
CompositeRow_BitMask2Argb(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
m_MaskGreen, m_MaskBlue, src_left, width,
m_BlendType, clip_scan);
- } else if (m_DestFormat == FXDIB_Format::kRgb ||
- m_DestFormat == FXDIB_Format::kRgb32) {
+ return;
+ }
+
+ if (m_DestFormat == FXDIB_Format::kRgb ||
+ m_DestFormat == FXDIB_Format::kRgb32) {
CompositeRow_BitMask2Rgb(dest_scan, src_scan, m_MaskAlpha, m_MaskRed,
m_MaskGreen, m_MaskBlue, src_left, width,
m_BlendType, GetCompsFromFormat(m_DestFormat),
clip_scan);
+ return;
}
+
+ // TODO(thestig): Is this line reachable?
}
CFX_ScanlineCompositor::Palette::Palette() = default;