From bf81c14cdb2b336a62f97119315f6bc43502e840 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 26 Oct 2015 16:54:39 -0400 Subject: Merge to XFA: Revert "Revert "Add type cast definitions for CPDF_Reference."" This reverts commit 7e155865c90cc1115cc7193b7646a341d8f9093e. Add type cast definitions for CPDF_Reference. This Cl adds ToReference, CPDF_Object::AsReference and CPDF_Object::IsReference and updates the src to use them as needed. BUG=pdfium:201 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/1418923005 . (cherry picked from commit 6ee3484bcb413f4cce303e237fe15e2bdaf51ade) Review URL: https://codereview.chromium.org/1410073007 . --- core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp | 53 +++++++------------------ 1 file changed, 15 insertions(+), 38 deletions(-) (limited to 'core/src/fpdfapi/fpdf_page') diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp index 3295b7f9e0..b12a65a844 100644 --- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp +++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp @@ -671,51 +671,28 @@ void CPDF_StreamContentParser::Handle_ExecuteXObject() { CFX_ByteString name = GetString(0); if (name == m_LastImageName && m_pLastImage && m_pLastImage->GetStream() && m_pLastImage->GetStream()->GetObjNum()) { - AddImage(NULL, m_pLastImage, FALSE); + AddImage(nullptr, m_pLastImage, FALSE); return; } + if (m_Options.m_bTextOnly) { - CPDF_Object* pRes = NULL; - if (m_pResources == NULL) { + if (!m_pResources) return; - } - if (m_pResources == m_pPageResources) { - CPDF_Dictionary* pList = m_pResources->GetDict(FX_BSTRC("XObject")); - if (pList == NULL) { - return; - } - pRes = pList->GetElement(name); - if (pRes == NULL || pRes->GetType() != PDFOBJ_REFERENCE) { - return; - } - } else { - CPDF_Dictionary* pList = m_pResources->GetDict(FX_BSTRC("XObject")); - if (pList == NULL) { - if (m_pPageResources == NULL) { - return; - } - CPDF_Dictionary* pList = m_pPageResources->GetDict(FX_BSTRC("XObject")); - if (pList == NULL) { - return; - } - pRes = pList->GetElement(name); - if (pRes == NULL || pRes->GetType() != PDFOBJ_REFERENCE) { - return; - } - } else { - pRes = pList->GetElement(name); - if (pRes == NULL || pRes->GetType() != PDFOBJ_REFERENCE) { - return; - } - } - } + + CPDF_Dictionary* pList = m_pResources->GetDict(FX_BSTRC("XObject")); + if (!pList && m_pPageResources && m_pResources != m_pPageResources) + pList = m_pPageResources->GetDict(FX_BSTRC("XObject")); + if (!pList) + return; + CPDF_Reference* pRes = ToReference(pList->GetElement(name)); + if (!pRes) + return; + FX_BOOL bForm; - if (m_pDocument->IsFormStream(((CPDF_Reference*)pRes)->GetRefObjNum(), - bForm) && - !bForm) { + if (m_pDocument->IsFormStream(pRes->GetRefObjNum(), bForm) && !bForm) return; - } } + CPDF_Stream* pXObject = ToStream(FindResourceObj(FX_BSTRC("XObject"), name)); if (!pXObject) { m_bResourceMissing = TRUE; -- cgit v1.2.3