summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfformfill.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2017-03-27 13:51:46 -0700
committerChromium commit bot <commit-bot@chromium.org>2017-03-28 14:14:50 +0000
commit0004f29bf6ee3c6060a272c79f14993e92e053c7 (patch)
treeb82385e4853a157e10148af8d95ebb6bae4fb4c7 /fpdfsdk/fpdfformfill.cpp
parent369fe1f7f9f3a424ee3cf8f992c3128db27fa479 (diff)
downloadpdfium-0004f29bf6ee3c6060a272c79f14993e92e053c7.tar.xz
Refcount all CFX_DIBSources (and subclasses) all the time.
There are currently several ownership models for these objects, including ad-hoc logic for sharing and deletion, and the now-redundant CFX_DIBitmapRef externally-counted handle to the DIBs. Replace them all with the internal refcount scheme. Change-Id: I2db399dfc19219eda384f94cc989353b78ce2872 Reviewed-on: https://pdfium-review.googlesource.com/3166 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdfformfill.cpp')
-rw-r--r--fpdfsdk/fpdfformfill.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/fpdfsdk/fpdfformfill.cpp b/fpdfsdk/fpdfformfill.cpp
index c2bbeff7e3..6e31e1f045 100644
--- a/fpdfsdk/fpdfformfill.cpp
+++ b/fpdfsdk/fpdfformfill.cpp
@@ -109,11 +109,12 @@ void FFLCommon(FPDF_FORMHANDLE hHandle,
pPage->GetDisplayMatrix(start_x, start_y, size_x, size_y, rotate);
FX_RECT clip(start_x, start_y, start_x + size_x, start_y + size_y);
- std::unique_ptr<CFX_FxgeDevice> pDevice(new CFX_FxgeDevice);
+ auto pDevice = pdfium::MakeUnique<CFX_FxgeDevice>();
#ifdef _SKIA_SUPPORT_
pDevice->AttachRecorder(static_cast<SkPictureRecorder*>(recorder));
#endif
- pDevice->Attach(CFXBitmapFromFPDFBitmap(bitmap), false, nullptr, false);
+ CFX_RetainPtr<CFX_DIBitmap> holder(CFXBitmapFromFPDFBitmap(bitmap));
+ pDevice->Attach(holder, false, nullptr, false);
pDevice->SaveState();
pDevice->SetClip_Rect(clip);
@@ -147,7 +148,7 @@ void FFLCommon(FPDF_FORMHANDLE hHandle,
pDevice->RestoreState(false);
#ifdef _SKIA_SUPPORT_PATHS_
pDevice->Flush();
- CFXBitmapFromFPDFBitmap(bitmap)->UnPreMultiply();
+ holder->UnPreMultiply();
#endif
}