Don't implement CPDF_DIB::GetBuffer()
Stops returning a non-empty buffer from CPDF_DIB::GetBuffer(), as
CPDF_DIB currently does not fulfill the contract that GetBuffer() and
GetScanline() return equivalent data.
Bug: pdfium:2050
Change-Id: I92fdad47bcce8cd726ec7031de8c51c2a0cee5c7
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/108850
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: K. Moon <kmoon@chromium.org>
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;