From 7d4f6a89d7e2c5d13b7d630d6348950044a5465e Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 31 Mar 2017 17:10:34 -0700 Subject: Refcount CPDF_Image all the time. Remove the old externally-counted CPDF_CountedImage type. Change-Id: Ia0b288586272da3f2daf7dfc153f08e62794321a Reviewed-on: https://pdfium-review.googlesource.com/3553 Reviewed-by: Lei Zhang Commit-Queue: Lei Zhang --- core/fpdfapi/page/cpdf_docpagedata.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'core/fpdfapi/page/cpdf_docpagedata.h') diff --git a/core/fpdfapi/page/cpdf_docpagedata.h b/core/fpdfapi/page/cpdf_docpagedata.h index 37538eb329..6ce6985e09 100644 --- a/core/fpdfapi/page/cpdf_docpagedata.h +++ b/core/fpdfapi/page/cpdf_docpagedata.h @@ -30,32 +30,38 @@ class CPDF_DocPageData { ~CPDF_DocPageData(); void Clear(bool bRelease = false); + bool IsForceClear() const { return m_bForceClear; } + CPDF_Font* GetFont(CPDF_Dictionary* pFontDict); CPDF_Font* GetStandardFont(const CFX_ByteString& fontName, CPDF_FontEncoding* pEncoding); void ReleaseFont(const CPDF_Dictionary* pFontDict); + CPDF_ColorSpace* GetColorSpace(CPDF_Object* pCSObj, const CPDF_Dictionary* pResources); CPDF_ColorSpace* GetCopiedColorSpace(CPDF_Object* pCSObj); void ReleaseColorSpace(const CPDF_Object* pColorSpace); + CPDF_Pattern* GetPattern(CPDF_Object* pPatternObj, bool bShading, const CFX_Matrix& matrix); void ReleasePattern(const CPDF_Object* pPatternObj); - CPDF_Image* GetImage(uint32_t dwStreamObjNum); - void ReleaseImage(uint32_t dwStreamObjNum); + + CFX_RetainPtr GetImage(uint32_t dwStreamObjNum); + void MaybePurgeImage(uint32_t dwStreamObjNum); + CPDF_IccProfile* GetIccProfile(CPDF_Stream* pIccProfileStream); void ReleaseIccProfile(const CPDF_IccProfile* pIccProfile); + CPDF_StreamAcc* GetFontFileStreamAcc(CPDF_Stream* pFontStream); void ReleaseFontFileStreamAcc(const CPDF_Stream* pFontStream); - bool IsForceClear() const { return m_bForceClear; } + CPDF_CountedColorSpace* FindColorSpacePtr(CPDF_Object* pCSObj) const; CPDF_CountedPattern* FindPatternPtr(CPDF_Object* pPatternObj) const; private: using CPDF_CountedFont = CPDF_CountedObject; using CPDF_CountedIccProfile = CPDF_CountedObject; - using CPDF_CountedImage = CPDF_CountedObject; using CPDF_CountedStreamAcc = CPDF_CountedObject; using CPDF_ColorSpaceMap = @@ -64,7 +70,7 @@ class CPDF_DocPageData { using CPDF_FontMap = std::map; using CPDF_IccProfileMap = std::map; - using CPDF_ImageMap = std::map; + using CPDF_ImageMap = std::map>; using CPDF_PatternMap = std::map; CPDF_ColorSpace* GetColorSpaceImpl(CPDF_Object* pCSObj, -- cgit v1.2.3