diff options
Diffstat (limited to 'core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp')
-rw-r--r-- | core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp b/core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp index 243c23fabf..e33a99ba63 100644 --- a/core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp +++ b/core/src/fpdfapi/fpdf_edit/fpdf_edit_content.cpp @@ -48,7 +48,7 @@ void CPDF_PageContentGenerate::GenerateContent() } ProcessImage(buf, (CPDF_ImageObject*)pPageObj); } - CPDF_Object* pContent = pPageDict->GetElementValue("Contents"); + CPDF_Object* pContent = pPageDict ? pPageDict->GetElementValue("Contents") : NULL; if (pContent != NULL) { pPageDict->RemoveAt("Contents"); } @@ -94,7 +94,8 @@ void CPDF_PageContentGenerate::ProcessImage(CFX_ByteTextBuf& buf, CPDF_ImageObje FX_DWORD dwSavedObjNum = pStream->GetObjNum(); CFX_ByteString name = RealizeResource(pStream, "XObject"); if (dwSavedObjNum == 0) { - pImageObj->m_pImage->Release(); + if (pImageObj->m_pImage) + pImageObj->m_pImage->Release(); pImageObj->m_pImage = m_pDocument->GetPageData()->GetImage(pStream); } buf << "/" << PDF_NameEncode(name) << " Do Q\n"; @@ -119,7 +120,8 @@ void CPDF_PageContentGenerate::ProcessForm(CFX_ByteTextBuf& buf, FX_LPCBYTE data } void CPDF_PageContentGenerate::TransformContent(CFX_Matrix& matrix) { - CPDF_Object* pContent = m_pPage->m_pFormDict->GetElementValue("Contents"); + CPDF_Dictionary* pDict = m_pPage->m_pFormDict; + CPDF_Object* pContent = pDict ? pDict->GetElementValue("Contents") : NULL; if (!pContent) { return; } |