diff options
Diffstat (limited to 'core/fpdfapi/page/cpdf_docpagedata.h')
-rw-r--r-- | core/fpdfapi/page/cpdf_docpagedata.h | 16 |
1 files changed, 11 insertions, 5 deletions
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<CPDF_Image> 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<CPDF_Font>; using CPDF_CountedIccProfile = CPDF_CountedObject<CPDF_IccProfile>; - using CPDF_CountedImage = CPDF_CountedObject<CPDF_Image>; using CPDF_CountedStreamAcc = CPDF_CountedObject<CPDF_StreamAcc>; using CPDF_ColorSpaceMap = @@ -64,7 +70,7 @@ class CPDF_DocPageData { using CPDF_FontMap = std::map<const CPDF_Dictionary*, CPDF_CountedFont*>; using CPDF_IccProfileMap = std::map<const CPDF_Stream*, CPDF_CountedIccProfile*>; - using CPDF_ImageMap = std::map<uint32_t, CPDF_CountedImage*>; + using CPDF_ImageMap = std::map<uint32_t, CFX_RetainPtr<CPDF_Image>>; using CPDF_PatternMap = std::map<const CPDF_Object*, CPDF_CountedPattern*>; CPDF_ColorSpace* GetColorSpaceImpl(CPDF_Object* pCSObj, |