| OLD | NEW |
| 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 #ifndef CORE_FPDFAPI_PARSER_CPDF_DATA_AVAIL_H_ | 7 #ifndef CORE_FPDFAPI_PARSER_CPDF_DATA_AVAIL_H_ |
| 8 #define CORE_FPDFAPI_PARSER_CPDF_DATA_AVAIL_H_ | 8 #define CORE_FPDFAPI_PARSER_CPDF_DATA_AVAIL_H_ |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 CPDF_Dictionary* GetPage(int index); | 114 CPDF_Dictionary* GetPage(int index); |
| 115 | 115 |
| 116 protected: | 116 protected: |
| 117 class PageNode { | 117 class PageNode { |
| 118 public: | 118 public: |
| 119 PageNode(); | 119 PageNode(); |
| 120 ~PageNode(); | 120 ~PageNode(); |
| 121 | 121 |
| 122 PDF_PAGENODE_TYPE m_type; | 122 PDF_PAGENODE_TYPE m_type; |
| 123 uint32_t m_dwPageNo; | 123 uint32_t m_dwPageNo; |
| 124 CFX_ArrayTemplate<PageNode*> m_childNode; | 124 std::vector<std::unique_ptr<PageNode>> m_ChildNodes; |
| 125 }; | 125 }; |
| 126 | 126 |
| 127 static const int kMaxDataAvailRecursionDepth = 64; | 127 static const int kMaxDataAvailRecursionDepth = 64; |
| 128 static int s_CurrentDataAvailRecursionDepth; | 128 static int s_CurrentDataAvailRecursionDepth; |
| 129 static const int kMaxPageRecursionDepth = 1024; | 129 static const int kMaxPageRecursionDepth = 1024; |
| 130 | 130 |
| 131 uint32_t GetObjectSize(uint32_t objnum, FX_FILESIZE& offset); | 131 uint32_t GetObjectSize(uint32_t objnum, FX_FILESIZE& offset); |
| 132 bool AreObjectsAvailable(std::vector<CPDF_Object*>& obj_array, | 132 bool AreObjectsAvailable(std::vector<CPDF_Object*>& obj_array, |
| 133 bool bParsePage, | 133 bool bParsePage, |
| 134 DownloadHints* pHints, | 134 DownloadHints* pHints, |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 172 bool LoadAllFile(DownloadHints* pHints); | 172 bool LoadAllFile(DownloadHints* pHints); |
| 173 DocAvailStatus CheckLinearizedData(DownloadHints* pHints); | 173 DocAvailStatus CheckLinearizedData(DownloadHints* pHints); |
| 174 bool CheckPageAnnots(uint32_t dwPage, DownloadHints* pHints); | 174 bool CheckPageAnnots(uint32_t dwPage, DownloadHints* pHints); |
| 175 | 175 |
| 176 DocAvailStatus CheckLinearizedFirstPage(uint32_t dwPage, | 176 DocAvailStatus CheckLinearizedFirstPage(uint32_t dwPage, |
| 177 DownloadHints* pHints); | 177 DownloadHints* pHints); |
| 178 bool HaveResourceAncestor(CPDF_Dictionary* pDict); | 178 bool HaveResourceAncestor(CPDF_Dictionary* pDict); |
| 179 bool CheckPage(uint32_t dwPage, DownloadHints* pHints); | 179 bool CheckPage(uint32_t dwPage, DownloadHints* pHints); |
| 180 bool LoadDocPages(DownloadHints* pHints); | 180 bool LoadDocPages(DownloadHints* pHints); |
| 181 bool LoadDocPage(uint32_t dwPage, DownloadHints* pHints); | 181 bool LoadDocPage(uint32_t dwPage, DownloadHints* pHints); |
| 182 bool CheckPageNode(PageNode& pageNodes, | 182 bool CheckPageNode(const PageNode& pageNode, |
| 183 int32_t iPage, | 183 int32_t iPage, |
| 184 int32_t& iCount, | 184 int32_t& iCount, |
| 185 DownloadHints* pHints, | 185 DownloadHints* pHints, |
| 186 int level); | 186 int level); |
| 187 bool CheckUnkownPageNode(uint32_t dwPageNo, | 187 bool CheckUnknownPageNode(uint32_t dwPageNo, |
| 188 PageNode* pPageNode, | 188 PageNode* pPageNode, |
| 189 DownloadHints* pHints); | 189 DownloadHints* pHints); |
| 190 bool CheckArrayPageNode(uint32_t dwPageNo, | 190 bool CheckArrayPageNode(uint32_t dwPageNo, |
| 191 PageNode* pPageNode, | 191 PageNode* pPageNode, |
| 192 DownloadHints* pHints); | 192 DownloadHints* pHints); |
| 193 bool CheckPageCount(DownloadHints* pHints); | 193 bool CheckPageCount(DownloadHints* pHints); |
| 194 bool IsFirstCheck(uint32_t dwPage); | 194 bool IsFirstCheck(uint32_t dwPage); |
| 195 void ResetFirstCheck(uint32_t dwPage); | 195 void ResetFirstCheck(uint32_t dwPage); |
| 196 bool ValidatePage(uint32_t dwPage); | 196 bool ValidatePage(uint32_t dwPage); |
| 197 bool ValidateForm(); | 197 bool ValidateForm(); |
| 198 | 198 |
| 199 FileAvail* const m_pFileAvail; | 199 FileAvail* const m_pFileAvail; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 CPDF_Dictionary* m_pPageDict; | 240 CPDF_Dictionary* m_pPageDict; |
| 241 CPDF_Object* m_pPageResource; | 241 CPDF_Object* m_pPageResource; |
| 242 bool m_bNeedDownLoadResource; | 242 bool m_bNeedDownLoadResource; |
| 243 bool m_bPageLoadedOK; | 243 bool m_bPageLoadedOK; |
| 244 bool m_bLinearizedFormParamLoad; | 244 bool m_bLinearizedFormParamLoad; |
| 245 std::vector<std::unique_ptr<CPDF_Object>> m_PagesArray; | 245 std::vector<std::unique_ptr<CPDF_Object>> m_PagesArray; |
| 246 uint32_t m_dwEncryptObjNum; | 246 uint32_t m_dwEncryptObjNum; |
| 247 FX_FILESIZE m_dwPrevXRefOffset; | 247 FX_FILESIZE m_dwPrevXRefOffset; |
| 248 bool m_bTotalLoadPageTree; | 248 bool m_bTotalLoadPageTree; |
| 249 bool m_bCurPageDictLoadOK; | 249 bool m_bCurPageDictLoadOK; |
| 250 PageNode m_pageNodes; | 250 PageNode m_PageNode; |
| 251 std::set<uint32_t> m_pageMapCheckState; | 251 std::set<uint32_t> m_pageMapCheckState; |
| 252 std::set<uint32_t> m_pagesLoadState; | 252 std::set<uint32_t> m_pagesLoadState; |
| 253 std::unique_ptr<CPDF_HintTables> m_pHintTables; | 253 std::unique_ptr<CPDF_HintTables> m_pHintTables; |
| 254 bool m_bSupportHintTable; | 254 bool m_bSupportHintTable; |
| 255 }; | 255 }; |
| 256 | 256 |
| 257 #endif // CORE_FPDFAPI_PARSER_CPDF_DATA_AVAIL_H_ | 257 #endif // CORE_FPDFAPI_PARSER_CPDF_DATA_AVAIL_H_ |
| OLD | NEW |