diff --git a/core/fxge/dib/cfx_scanlinecompositor.cpp b/core/fxge/dib/cfx_scanlinecompositor.cpp
index 92e4268..d15dcc1 100644
--- a/core/fxge/dib/cfx_scanlinecompositor.cpp
+++ b/core/fxge/dib/cfx_scanlinecompositor.cpp
@@ -2233,7 +2233,7 @@
   m_BlendType = blend_type;
   m_bRgbByteOrder = bRgbByteOrder;
   m_bClip = bClip;
-  if (GetBppFromFormat(dest_format) == 1)
+  if (GetBppFromFormat(m_DestFormat) == 1)
     return false;
 
   if (m_bRgbByteOrder && GetBppFromFormat(m_DestFormat) == 8)
@@ -2245,8 +2245,8 @@
     return true;
   }
   if (GetBppFromFormat(m_SrcFormat) <= 8 &&
-      dest_format != FXDIB_Format::k8bppMask) {
-    InitSourcePalette(src_format, dest_format, src_palette);
+      m_DestFormat != FXDIB_Format::k8bppMask) {
+    InitSourcePalette(src_palette);
   }
   return true;
 }
@@ -2264,13 +2264,11 @@
 }
 
 void CFX_ScanlineCompositor::InitSourcePalette(
-    FXDIB_Format src_format,
-    FXDIB_Format dest_format,
     pdfium::span<const uint32_t> src_palette) {
   m_SrcPalette.Reset();
-  const bool bIsDestBpp8 = GetBppFromFormat(dest_format) == 8;
+  const bool bIsDestBpp8 = GetBppFromFormat(m_DestFormat) == 8;
   const size_t pal_count = static_cast<size_t>(1)
-                           << GetBppFromFormat(src_format);
+                           << GetBppFromFormat(m_SrcFormat);
 
   if (!src_palette.empty()) {
     if (bIsDestBpp8) {
diff --git a/core/fxge/dib/cfx_scanlinecompositor.h b/core/fxge/dib/cfx_scanlinecompositor.h
index 6a59ef2..3d8b528 100644
--- a/core/fxge/dib/cfx_scanlinecompositor.h
+++ b/core/fxge/dib/cfx_scanlinecompositor.h
@@ -72,9 +72,7 @@
     std::unique_ptr<uint32_t, FxFreeDeleter> m_pData;
   };
 
-  void InitSourcePalette(FXDIB_Format src_format,
-                         FXDIB_Format dest_format,
-                         pdfium::span<const uint32_t> src_palette);
+  void InitSourcePalette(pdfium::span<const uint32_t> src_palette);
 
   void InitSourceMask(uint32_t mask_color);
 
