diff options
Diffstat (limited to 'core/fpdfapi/fpdf_render/fpdf_render.cpp')
-rw-r--r-- | core/fpdfapi/fpdf_render/fpdf_render.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/fpdfapi/fpdf_render/fpdf_render.cpp b/core/fpdfapi/fpdf_render/fpdf_render.cpp index 8043f932bb..59c8397f54 100644 --- a/core/fpdfapi/fpdf_render/fpdf_render.cpp +++ b/core/fpdfapi/fpdf_render/fpdf_render.cpp @@ -30,13 +30,14 @@ #include "core/fpdfapi/fpdf_render/include/cpdf_textrenderer.h" #include "core/fpdfapi/include/cpdf_modulemgr.h" #include "core/fpdfdoc/include/cpdf_occontext.h" +#include "core/fxge/include/cfx_fontcache.h" #include "core/fxge/include/cfx_fxgedevice.h" #include "core/fxge/include/cfx_graphstatedata.h" #include "core/fxge/include/cfx_pathdata.h" #include "core/fxge/include/cfx_renderdevice.h" CPDF_DocRenderData::CPDF_DocRenderData(CPDF_Document* pPDFDoc) - : m_pPDFDoc(pPDFDoc) {} + : m_pPDFDoc(pPDFDoc), m_pFontCache(new CFX_FontCache) {} CPDF_DocRenderData::~CPDF_DocRenderData() { Clear(TRUE); @@ -62,6 +63,15 @@ void CPDF_DocRenderData::Clear(FX_BOOL bRelease) { m_TransferFuncMap.erase(curr_it); } } + + if (m_pFontCache) { + if (bRelease) { + delete m_pFontCache; + m_pFontCache = nullptr; + } else { + m_pFontCache->FreeCache(FALSE); + } + } } CPDF_Type3Cache* CPDF_DocRenderData::GetCachedType3(CPDF_Type3Font* pFont) { |