Don't infer UnownedPtr::ExtractAsDangling() type
Passes the return value of UnownedPtr::ExtractAsDangling() directly to
the RetainPtr constructor, rather than using pdfium::WrapRetain(). When
UnownedPtr is a raw_ptr (as in Chromium), ExtractAsDangling() returns
another raw_ptr, which cannot be implicitly converted to CFX_DIBBase*
when passed to WrapRetain().
Bug: pdfium:2034
Change-Id: If4fc95694fa76eb0e9da02f87507b1521376e3ff
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/108491
Reviewed-by: Nigi <nigi@chromium.org>
Auto-Submit: K. Moon <kmoon@chromium.org>
Commit-Queue: Nigi <nigi@chromium.org>
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index c212140..b5e0f6a 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -231,8 +231,8 @@
}
// Convert unowned pointer to a retained pointer, then "leak" to `SkImage`.
- RetainPtr<CFX_DIBBase> retained =
- pdfium::WrapRetain(absl::get<UnownedType>(data_).ExtractAsDangling());
+ RetainPtr<CFX_DIBBase> retained(
+ absl::get<UnownedType>(data_).ExtractAsDangling());
CFX_DIBBase* source = retained.Leak();
return SkImages::RasterFromPixmap(
SkPixmap(info_, source->GetBuffer().data(), row_bytes_),