Index: core/fpdfapi/fpdf_page/cpdf_textstate.cpp |
diff --git a/core/fpdfapi/fpdf_page/cpdf_textstate.cpp b/core/fpdfapi/fpdf_page/cpdf_textstate.cpp |
index 47e21168369141dc5d0edcd0dc71696c13b4be3a..ae758766645a3dd8829c66f68f859ae3db09b5fc 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 { |