diff --git a/core/fpdfapi/page/cpdf_dib.cpp b/core/fpdfapi/page/cpdf_dib.cpp
index f1c2755..7559eeb 100644
--- a/core/fpdfapi/page/cpdf_dib.cpp
+++ b/core/fpdfapi/page/cpdf_dib.cpp
@@ -1133,8 +1133,10 @@
 }
 
 pdfium::span<const uint8_t> CPDF_DIB::GetBuffer() const {
-  return m_pCachedBitmap ? m_pCachedBitmap->GetBuffer()
-                         : pdfium::span<const uint8_t>();
+  // TODO(crbug.com/pdfium/2050): Reuse buffer from `m_pCachedBitmap`. This
+  // doesn't work right now because `LoadJpxBitmap()` doesn't generate a bitmap
+  // in the same format as `GetScanline()`.
+  return pdfium::span<const uint8_t>();
 }
 
 pdfium::span<const uint8_t> CPDF_DIB::GetScanline(int line) const {
diff --git a/core/fpdfapi/page/cpdf_pageimagecache.cpp b/core/fpdfapi/page/cpdf_pageimagecache.cpp
index e470169..cba999b 100644
--- a/core/fpdfapi/page/cpdf_pageimagecache.cpp
+++ b/core/fpdfapi/page/cpdf_pageimagecache.cpp
@@ -110,11 +110,8 @@
                                        bool realize_hint) {
 #if defined(_SKIA_SUPPORT_)
   if (CFX_DefaultRenderDevice::SkiaIsDefaultRenderer()) {
-    // TODO(crbug.com/pdfium/2050): Ignore `realize_hint`, as `RealizeSkImage()`
-    // doesn't benefit from it. The current behavior masks a bug in `CPDF_DIB`
-    // in which `GetBuffer()` and `GetScanline()` don't give the same answer.
-    return pdfium::MakeRetain<CachedImage>(realize_hint ? image->Realize()
-                                                        : std::move(image));
+    // Ignore `realize_hint`, as `RealizeSkImage()` doesn't benefit from it.
+    return pdfium::MakeRetain<CachedImage>(std::move(image));
   }
 #endif  // defined(_SKIA_SUPPORT_)
   return realize_hint ? image->Realize() : image;
