Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1071)

Side by Side Diff: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp

Issue 1323263006: Merge to XFA: Remove unneeded checks for CPDF_Object::GetDict() return values. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 4100 matching lines...) Expand 10 before | Expand all | Expand 10 after
4111 if (!pTrailer) { 4111 if (!pTrailer) {
4112 m_Pos += m_syntaxParser.SavePos(); 4112 m_Pos += m_syntaxParser.SavePos();
4113 pHints->AddSegment(m_Pos, iTrailerSize); 4113 pHints->AddSegment(m_Pos, iTrailerSize);
4114 return FALSE; 4114 return FALSE;
4115 } 4115 }
4116 if (pTrailer->GetType() != PDFOBJ_DICTIONARY) { 4116 if (pTrailer->GetType() != PDFOBJ_DICTIONARY) {
4117 pTrailer->Release(); 4117 pTrailer->Release();
4118 return FALSE; 4118 return FALSE;
4119 } 4119 }
4120 CPDF_Dictionary* pTrailerDict = pTrailer->GetDict(); 4120 CPDF_Dictionary* pTrailerDict = pTrailer->GetDict();
4121 if (pTrailerDict) { 4121 CPDF_Object* pEncrypt = pTrailerDict->GetElement("Encrypt");
4122 CPDF_Object* pEncrypt = pTrailerDict->GetElement("Encrypt"); 4122 if (pEncrypt && pEncrypt->GetType() == PDFOBJ_REFERENCE) {
4123 if (pEncrypt && pEncrypt->GetType() == PDFOBJ_REFERENCE) { 4123 m_docStatus = PDF_DATAAVAIL_LOADALLFILE;
4124 m_docStatus = PDF_DATAAVAIL_LOADALLFILE; 4124 pTrailer->Release();
4125 pTrailer->Release(); 4125 return TRUE;
4126 return TRUE;
4127 }
4128 } 4126 }
4129 FX_DWORD xrefpos = GetDirectInteger(pTrailer->GetDict(), FX_BSTRC("Prev")); 4127 FX_DWORD xrefpos = GetDirectInteger(pTrailer->GetDict(), FX_BSTRC("Prev"));
4130 if (xrefpos) { 4128 if (xrefpos) {
4131 m_dwPrevXRefOffset = 4129 m_dwPrevXRefOffset =
4132 GetDirectInteger(pTrailer->GetDict(), FX_BSTRC("XRefStm")); 4130 GetDirectInteger(pTrailer->GetDict(), FX_BSTRC("XRefStm"));
4133 pTrailer->Release(); 4131 pTrailer->Release();
4134 if (m_dwPrevXRefOffset) { 4132 if (m_dwPrevXRefOffset) {
4135 m_docStatus = PDF_DATAAVAIL_LOADALLFILE; 4133 m_docStatus = PDF_DATAAVAIL_LOADALLFILE;
4136 } else { 4134 } else {
4137 m_dwPrevXRefOffset = xrefpos; 4135 m_dwPrevXRefOffset = xrefpos;
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
4234 pPage->Release(); 4232 pPage->Release();
4235 return TRUE; 4233 return TRUE;
4236 } 4234 }
4237 if (pPage->GetType() != PDFOBJ_DICTIONARY) { 4235 if (pPage->GetType() != PDFOBJ_DICTIONARY) {
4238 pPage->Release(); 4236 pPage->Release();
4239 m_docStatus = PDF_DATAAVAIL_ERROR; 4237 m_docStatus = PDF_DATAAVAIL_ERROR;
4240 return FALSE; 4238 return FALSE;
4241 } 4239 }
4242 pPageNode->m_dwPageNo = dwPageNo; 4240 pPageNode->m_dwPageNo = dwPageNo;
4243 CPDF_Dictionary* pDict = pPage->GetDict(); 4241 CPDF_Dictionary* pDict = pPage->GetDict();
4244 CFX_ByteString type = 4242 CFX_ByteString type = pDict->GetString(FX_BSTRC("Type"));
4245 pDict ? pDict->GetString(FX_BSTRC("Type")) : CFX_ByteString();
4246 if (type == FX_BSTRC("Pages")) { 4243 if (type == FX_BSTRC("Pages")) {
4247 pPageNode->m_type = PDF_PAGENODE_PAGES; 4244 pPageNode->m_type = PDF_PAGENODE_PAGES;
4248 CPDF_Object* pKids = pDict->GetElement(FX_BSTRC("Kids")); 4245 CPDF_Object* pKids = pDict->GetElement(FX_BSTRC("Kids"));
4249 if (!pKids) { 4246 if (!pKids) {
4250 m_docStatus = PDF_DATAAVAIL_PAGE; 4247 m_docStatus = PDF_DATAAVAIL_PAGE;
4251 return TRUE; 4248 return TRUE;
4252 } 4249 }
4253 switch (pKids->GetType()) { 4250 switch (pKids->GetType()) {
4254 case PDFOBJ_REFERENCE: { 4251 case PDFOBJ_REFERENCE: {
4255 CPDF_Reference* pKid = (CPDF_Reference*)pKids; 4252 CPDF_Reference* pKid = (CPDF_Reference*)pKids;
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after
4694 return FALSE; 4691 return FALSE;
4695 } 4692 }
4696 CPDF_PageNode::~CPDF_PageNode() { 4693 CPDF_PageNode::~CPDF_PageNode() {
4697 int32_t iSize = m_childNode.GetSize(); 4694 int32_t iSize = m_childNode.GetSize();
4698 for (int32_t i = 0; i < iSize; ++i) { 4695 for (int32_t i = 0; i < iSize; ++i) {
4699 CPDF_PageNode* pNode = (CPDF_PageNode*)m_childNode[i]; 4696 CPDF_PageNode* pNode = (CPDF_PageNode*)m_childNode[i];
4700 delete pNode; 4697 delete pNode;
4701 } 4698 }
4702 m_childNode.RemoveAll(); 4699 m_childNode.RemoveAll();
4703 } 4700 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698