Index: core/fpdfapi/fpdf_render/fpdf_render.cpp |
diff --git a/core/fpdfapi/fpdf_render/fpdf_render.cpp b/core/fpdfapi/fpdf_render/fpdf_render.cpp |
index 0bdb0a094c92e96a44ce1c6d09ba0299a94e584b..fbb0745506a67206334b967e20fd21494c4b95ef 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); |
@@ -60,6 +61,15 @@ |
delete value->get(); |
delete value; |
m_TransferFuncMap.erase(curr_it); |
+ } |
+ } |
+ |
+ if (m_pFontCache) { |
+ if (bRelease) { |
+ delete m_pFontCache; |
+ m_pFontCache = nullptr; |
+ } else { |
+ m_pFontCache->FreeCache(FALSE); |
} |
} |
} |