Unnest some code in CFX_ScanlineCompositor.

Use early returns to reduce nesting.

Change-Id: I53ccafc7c319cb8f54b7a1ae8ebda9e4ac7a8003
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/102673
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxge/dib/cfx_scanlinecompositor.cpp b/core/fxge/dib/cfx_scanlinecompositor.cpp
index b8b3ac4..4da229a 100644
--- a/core/fxge/dib/cfx_scanlinecompositor.cpp
+++ b/core/fxge/dib/cfx_scanlinecompositor.cpp
@@ -2381,6 +2381,7 @@
     }
     return;
   }
+
   if (m_DestFormat == FXDIB_Format::k8bppMask) {
     if (GetIsAlphaFromFormat(m_SrcFormat)) {
       DCHECK_EQ(m_SrcFormat, FXDIB_Format::kArgb);
@@ -2388,7 +2389,10 @@
     } else {
       CompositeRow_Rgb2Mask(dest_scan, width, clip_scan);
     }
-  } else if (GetBppFromFormat(m_DestFormat) == 8) {
+    return;
+  }
+
+  if (GetBppFromFormat(m_DestFormat) == 8) {
     DCHECK(!GetIsAlphaFromFormat(m_DestFormat));
     if (GetIsAlphaFromFormat(m_SrcFormat)) {
       CompositeRow_Argb2Gray(dest_scan, src_scan, width, m_BlendType,
@@ -2397,58 +2401,58 @@
       CompositeRow_Rgb2Gray(dest_scan, src_scan, src_Bpp, width, m_BlendType,
                             clip_scan);
     }
-  } else {
-    switch (m_iTransparency) {
-      case 0:
-      case 4:
-      case 8:
-      case 4 + 8: {
-        CompositeRow_Argb2Argb(dest_scan, src_scan, width, m_BlendType,
-                               clip_scan);
-      } break;
-      case 1:
-        CompositeRow_Rgb2Argb_Blend_NoClip(dest_scan, src_scan, width,
-                                           m_BlendType, src_Bpp);
-        break;
-      case 1 + 8:
-        CompositeRow_Rgb2Argb_Blend_Clip(dest_scan, src_scan, width,
-                                         m_BlendType, src_Bpp, clip_scan);
-        break;
-      case 1 + 4:
-        CompositeRow_Rgb2Argb_NoBlend_NoClip(dest_scan, src_scan, width,
-                                             src_Bpp);
-        break;
-      case 1 + 4 + 8:
-        CompositeRow_Rgb2Argb_NoBlend_Clip(dest_scan, src_scan, width, src_Bpp,
-                                           clip_scan);
-        break;
-      case 2:
-      case 2 + 8:
-        CompositeRow_Argb2Rgb_Blend(dest_scan, src_scan, width, m_BlendType,
-                                    dest_Bpp, clip_scan);
-        break;
-      case 2 + 4:
-      case 2 + 4 + 8:
-        CompositeRow_Argb2Rgb_NoBlend(dest_scan, src_scan, width, dest_Bpp,
-                                      clip_scan);
-        break;
-      case 1 + 2:
-        CompositeRow_Rgb2Rgb_Blend_NoClip(dest_scan, src_scan, width,
-                                          m_BlendType, dest_Bpp, src_Bpp);
-        break;
-      case 1 + 2 + 8:
-        CompositeRow_Rgb2Rgb_Blend_Clip(dest_scan, src_scan, width, m_BlendType,
-                                        dest_Bpp, src_Bpp, clip_scan);
-        break;
-      case 1 + 2 + 4:
-        CompositeRow_Rgb2Rgb_NoBlend_NoClip(dest_scan, src_scan, width,
-                                            dest_Bpp, src_Bpp);
-        break;
-      case 1 + 2 + 4 + 8:
-        CompositeRow_Rgb2Rgb_NoBlend_Clip(dest_scan, src_scan, width, dest_Bpp,
-                                          src_Bpp, clip_scan);
-        break;
-    }
+    return;
+  }
+
+  switch (m_iTransparency) {
+    case 0:
+    case 4:
+    case 8:
+    case 4 + 8: {
+      CompositeRow_Argb2Argb(dest_scan, src_scan, width, m_BlendType,
+                             clip_scan);
+    } break;
+    case 1:
+      CompositeRow_Rgb2Argb_Blend_NoClip(dest_scan, src_scan, width,
+                                         m_BlendType, src_Bpp);
+      break;
+    case 1 + 8:
+      CompositeRow_Rgb2Argb_Blend_Clip(dest_scan, src_scan, width, m_BlendType,
+                                       src_Bpp, clip_scan);
+      break;
+    case 1 + 4:
+      CompositeRow_Rgb2Argb_NoBlend_NoClip(dest_scan, src_scan, width, src_Bpp);
+      break;
+    case 1 + 4 + 8:
+      CompositeRow_Rgb2Argb_NoBlend_Clip(dest_scan, src_scan, width, src_Bpp,
+                                         clip_scan);
+      break;
+    case 2:
+    case 2 + 8:
+      CompositeRow_Argb2Rgb_Blend(dest_scan, src_scan, width, m_BlendType,
+                                  dest_Bpp, clip_scan);
+      break;
+    case 2 + 4:
+    case 2 + 4 + 8:
+      CompositeRow_Argb2Rgb_NoBlend(dest_scan, src_scan, width, dest_Bpp,
+                                    clip_scan);
+      break;
+    case 1 + 2:
+      CompositeRow_Rgb2Rgb_Blend_NoClip(dest_scan, src_scan, width, m_BlendType,
+                                        dest_Bpp, src_Bpp);
+      break;
+    case 1 + 2 + 8:
+      CompositeRow_Rgb2Rgb_Blend_Clip(dest_scan, src_scan, width, m_BlendType,
+                                      dest_Bpp, src_Bpp, clip_scan);
+      break;
+    case 1 + 2 + 4:
+      CompositeRow_Rgb2Rgb_NoBlend_NoClip(dest_scan, src_scan, width, dest_Bpp,
+                                          src_Bpp);
+      break;
+    case 1 + 2 + 4 + 8:
+      CompositeRow_Rgb2Rgb_NoBlend_Clip(dest_scan, src_scan, width, dest_Bpp,
+                                        src_Bpp, clip_scan);
+      break;
   }
 }
 
@@ -2488,10 +2492,12 @@
     }
     return;
   }
+
   if (m_DestFormat == FXDIB_Format::k8bppMask) {
     CompositeRow_Rgb2Mask(dest_scan, width, clip_scan);
     return;
   }
+
   if (GetBppFromFormat(m_DestFormat) == 8) {
     DCHECK(!GetIsAlphaFromFormat(m_DestFormat));
     if (m_iTransparency & 8) {
@@ -2503,36 +2509,37 @@
                                 m_SrcPalette.Get8BitPalette(), width,
                                 m_BlendType, clip_scan);
     }
-  } else {
-    switch (m_iTransparency) {
-      case 1 + 2:
-        CompositeRow_8bppRgb2Argb_NoBlend(dest_scan, src_scan, width,
-                                          m_SrcPalette.Get32BitPalette(),
-                                          clip_scan);
-        break;
-      case 1 + 2 + 8:
-        CompositeRow_1bppRgb2Argb_NoBlend(dest_scan, src_scan, src_left, width,
-                                          m_SrcPalette.Get32BitPalette(),
-                                          clip_scan);
-        break;
-      case 0:
-      case 0 + 2:
-        CompositeRow_8bppRgb2Rgb_NoBlend(
-            dest_scan, src_scan, m_SrcPalette.Get32BitPalette(), width,
-            GetCompsFromFormat(m_DestFormat), clip_scan);
-        break;
-      case 0 + 8:
-        CompositeRow_1bppRgb2Rgb_NoBlend(
-            dest_scan, src_scan, src_left, m_SrcPalette.Get32BitPalette(),
-            width, GetCompsFromFormat(m_DestFormat), clip_scan);
-        break;
-      case 0 + 2 + 8:
-        // TODO(thestig): Check if empty span argument is always empty.
-        CompositeRow_1bppRgb2Rgba_NoBlend(dest_scan, src_scan, src_left, width,
-                                          m_SrcPalette.Get32BitPalette(),
-                                          clip_scan, {});
-        break;
-    }
+    return;
+  }
+
+  switch (m_iTransparency) {
+    case 1 + 2:
+      CompositeRow_8bppRgb2Argb_NoBlend(dest_scan, src_scan, width,
+                                        m_SrcPalette.Get32BitPalette(),
+                                        clip_scan);
+      break;
+    case 1 + 2 + 8:
+      CompositeRow_1bppRgb2Argb_NoBlend(dest_scan, src_scan, src_left, width,
+                                        m_SrcPalette.Get32BitPalette(),
+                                        clip_scan);
+      break;
+    case 0:
+    case 0 + 2:
+      CompositeRow_8bppRgb2Rgb_NoBlend(
+          dest_scan, src_scan, m_SrcPalette.Get32BitPalette(), width,
+          GetCompsFromFormat(m_DestFormat), clip_scan);
+      break;
+    case 0 + 8:
+      CompositeRow_1bppRgb2Rgb_NoBlend(
+          dest_scan, src_scan, src_left, m_SrcPalette.Get32BitPalette(), width,
+          GetCompsFromFormat(m_DestFormat), clip_scan);
+      break;
+    case 0 + 2 + 8:
+      // TODO(thestig): Check if empty span argument is always empty.
+      CompositeRow_1bppRgb2Rgba_NoBlend(dest_scan, src_scan, src_left, width,
+                                        m_SrcPalette.Get32BitPalette(),
+                                        clip_scan, {});
+      break;
   }
 }