diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-04-03 14:05:17 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-03 21:47:59 +0000 |
commit | 3a1d9b48cb5485cdb93f1cc9857e5d829868629c (patch) | |
tree | 9f49629c7bb9a73357821841da549ac9149d7b12 /core/fpdfapi/render/cpdf_docrenderdata.h | |
parent | ac35589d5d1a593497cf28d91ab6a236f25833c3 (diff) | |
download | pdfium-3a1d9b48cb5485cdb93f1cc9857e5d829868629c.tar.xz |
RefCount CPDF_TransferFunc all the time.
Prefer internal reference counts over ad-hoc schemes.
Change-Id: I8d420e9e9827ac39fdc0bc8146a532caeee10f26
Reviewed-on: https://pdfium-review.googlesource.com/3615
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi/render/cpdf_docrenderdata.h')
-rw-r--r-- | core/fpdfapi/render/cpdf_docrenderdata.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/core/fpdfapi/render/cpdf_docrenderdata.h b/core/fpdfapi/render/cpdf_docrenderdata.h index a8f4167a8d..5daee34176 100644 --- a/core/fpdfapi/render/cpdf_docrenderdata.h +++ b/core/fpdfapi/render/cpdf_docrenderdata.h @@ -10,11 +10,11 @@ #include <map> #include "core/fpdfapi/page/cpdf_countedobject.h" +#include "core/fpdfapi/render/cpdf_transferfunc.h" class CPDF_Document; class CPDF_Font; class CPDF_Object; -class CPDF_TransferFunc; class CPDF_Type3Cache; class CPDF_Type3Font; @@ -25,19 +25,19 @@ class CPDF_DocRenderData { CPDF_Type3Cache* GetCachedType3(CPDF_Type3Font* pFont); void ReleaseCachedType3(CPDF_Type3Font* pFont); - CPDF_TransferFunc* GetTransferFunc(CPDF_Object* pObj); - void ReleaseTransferFunc(CPDF_Object* pObj); + + CFX_RetainPtr<CPDF_TransferFunc> GetTransferFunc(CPDF_Object* pObj); + void MaybePurgeTransferFunc(CPDF_Object* pOb); + void Clear(bool bRelease); private: using CPDF_Type3CacheMap = std::map<CPDF_Font*, CPDF_CountedObject<CPDF_Type3Cache>*>; - using CPDF_TransferFuncMap = - std::map<CPDF_Object*, CPDF_CountedObject<CPDF_TransferFunc>*>; CPDF_Document* m_pPDFDoc; // Not Owned CPDF_Type3CacheMap m_Type3FaceMap; - CPDF_TransferFuncMap m_TransferFuncMap; + std::map<CPDF_Object*, CFX_RetainPtr<CPDF_TransferFunc>> m_TransferFuncMap; }; #endif // CORE_FPDFAPI_RENDER_CPDF_DOCRENDERDATA_H_ |