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

Side by Side Diff: core/fpdfapi/parser/cpdf_data_avail.cpp

Issue 2498223005: Make CPDF_Array take unique_ptrs (Closed)
Patch Set: nits Created 4 years, 1 month 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 | « core/fpdfapi/parser/cpdf_array_unittest.cpp ('k') | core/fpdfapi/parser/cpdf_dictionary.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 PDFium Authors. All rights reserved. 1 // Copyright 2016 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 "core/fpdfapi/parser/cpdf_data_avail.h" 7 #include "core/fpdfapi/parser/cpdf_data_avail.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 std::unique_ptr<CPDF_Object> pObj = 463 std::unique_ptr<CPDF_Object> pObj =
464 GetObject(dwPageObjNum, pHints, &bExist); 464 GetObject(dwPageObjNum, pHints, &bExist);
465 if (!pObj) { 465 if (!pObj) {
466 if (bExist) 466 if (bExist)
467 UnavailObjList.Add(dwPageObjNum); 467 UnavailObjList.Add(dwPageObjNum);
468 continue; 468 continue;
469 } 469 }
470 470
471 CPDF_Array* pArray = ToArray(pObj.get()); 471 CPDF_Array* pArray = ToArray(pObj.get());
472 if (pArray) { 472 if (pArray) {
473 for (CPDF_Object* pArrayObj : *pArray) { 473 for (const auto& pArrayObj : *pArray) {
474 if (CPDF_Reference* pRef = ToReference(pArrayObj)) 474 if (CPDF_Reference* pRef = ToReference(pArrayObj.get()))
475 UnavailObjList.Add(pRef->GetRefObjNum()); 475 UnavailObjList.Add(pRef->GetRefObjNum());
476 } 476 }
477 } 477 }
478 478 if (!pObj->IsDictionary())
479 if (!pObj->IsDictionary()) {
480 continue; 479 continue;
481 }
482 480
483 CFX_ByteString type = pObj->GetDict()->GetStringFor("Type"); 481 CFX_ByteString type = pObj->GetDict()->GetStringFor("Type");
484 if (type == "Pages") { 482 if (type == "Pages") {
485 m_PagesArray.push_back(std::move(pObj)); 483 m_PagesArray.push_back(std::move(pObj));
486 continue; 484 continue;
487 } 485 }
488 } 486 }
489 487
490 m_PageObjList.RemoveAll(); 488 m_PageObjList.RemoveAll();
491 if (UnavailObjList.GetSize()) { 489 if (UnavailObjList.GetSize()) {
(...skipping 1210 matching lines...) Expand 10 before | Expand all | Expand 10 after
1702 return AreObjectsAvailable(obj_array, true, nullptr, dummy); 1700 return AreObjectsAvailable(obj_array, true, nullptr, dummy);
1703 } 1701 }
1704 1702
1705 CPDF_DataAvail::PageNode::PageNode() : m_type(PDF_PAGENODE_UNKNOWN) {} 1703 CPDF_DataAvail::PageNode::PageNode() : m_type(PDF_PAGENODE_UNKNOWN) {}
1706 1704
1707 CPDF_DataAvail::PageNode::~PageNode() { 1705 CPDF_DataAvail::PageNode::~PageNode() {
1708 for (int32_t i = 0; i < m_childNode.GetSize(); ++i) 1706 for (int32_t i = 0; i < m_childNode.GetSize(); ++i)
1709 delete m_childNode[i]; 1707 delete m_childNode[i];
1710 m_childNode.RemoveAll(); 1708 m_childNode.RemoveAll();
1711 } 1709 }
OLDNEW
« no previous file with comments | « core/fpdfapi/parser/cpdf_array_unittest.cpp ('k') | core/fpdfapi/parser/cpdf_dictionary.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698