summaryrefslogtreecommitdiff
path: root/core/fpdfapi/fpdf_page/cpdf_textstate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/fpdf_page/cpdf_textstate.cpp')
-rw-r--r--core/fpdfapi/fpdf_page/cpdf_textstate.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/core/fpdfapi/fpdf_page/cpdf_textstate.cpp b/core/fpdfapi/fpdf_page/cpdf_textstate.cpp
index 47e2116836..ae75876664 100644
--- a/core/fpdfapi/fpdf_page/cpdf_textstate.cpp
+++ b/core/fpdfapi/fpdf_page/cpdf_textstate.cpp
@@ -10,15 +10,16 @@
#include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
void CPDF_TextState::SetFont(CPDF_Font* pFont) {
- MakePrivateCopy();
- CPDF_TextStateData* pStateData = GetObject();
- CPDF_Document* pDoc = pStateData->m_pDocument;
- CPDF_DocPageData* pPageData = pDoc ? pDoc->GetPageData() : nullptr;
- if (pPageData && pStateData->m_pFont && !pPageData->IsForceClear())
- pPageData->ReleaseFont(pStateData->m_pFont->GetFontDict());
-
- pStateData->m_pDocument = pFont ? pFont->m_pDocument : nullptr;
- pStateData->m_pFont = pFont;
+ CPDF_TextStateData* pStateData = GetPrivateCopy();
+ if (pStateData) {
+ CPDF_Document* pDoc = pStateData->m_pDocument;
+ CPDF_DocPageData* pPageData = pDoc ? pDoc->GetPageData() : nullptr;
+ if (pPageData && pStateData->m_pFont && !pPageData->IsForceClear()) {
+ pPageData->ReleaseFont(pStateData->m_pFont->GetFontDict());
+ }
+ pStateData->m_pDocument = pFont ? pFont->m_pDocument : nullptr;
+ pStateData->m_pFont = pFont;
+ }
}
FX_FLOAT CPDF_TextState::GetFontSizeV() const {