From 0004f29bf6ee3c6060a272c79f14993e92e053c7 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Mon, 27 Mar 2017 13:51:46 -0700 Subject: 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 Commit-Queue: dsinclair --- core/fpdfapi/page/cpdf_image.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'core/fpdfapi/page/cpdf_image.h') diff --git a/core/fpdfapi/page/cpdf_image.h b/core/fpdfapi/page/cpdf_image.h index 1909498102..5b737e67b9 100644 --- a/core/fpdfapi/page/cpdf_image.h +++ b/core/fpdfapi/page/cpdf_image.h @@ -44,25 +44,25 @@ class CPDF_Image { bool IsMask() const { return m_bIsMask; } bool IsInterpol() const { return m_bInterpolate; } - std::unique_ptr LoadDIBSource() const; + CFX_RetainPtr LoadDIBSource() const; - void SetImage(const CFX_DIBitmap* pDIBitmap); + void SetImage(const CFX_RetainPtr& pDIBitmap); void SetJpegImage(const CFX_RetainPtr& pFile); void SetJpegImageInline(const CFX_RetainPtr& pFile); - void ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pDIBitmap); - + void ResetCache(CPDF_Page* pPage, + const CFX_RetainPtr& pDIBitmap); bool StartLoadDIBSource(CPDF_Dictionary* pFormResource, CPDF_Dictionary* pPageResource, bool bStdCS = false, uint32_t GroupFamily = 0, bool bLoadMask = false); bool Continue(IFX_Pause* pPause); - CFX_DIBSource* DetachBitmap(); - CFX_DIBSource* DetachMask(); + CFX_RetainPtr DetachBitmap(); + CFX_RetainPtr DetachMask(); - CFX_DIBSource* m_pDIBSource = nullptr; - CFX_DIBSource* m_pMask = nullptr; + CFX_RetainPtr m_pDIBSource; + CFX_RetainPtr m_pMask; uint32_t m_MatteColor = 0; private: -- cgit v1.2.3