| OLD | NEW |
| 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 "core/include/fpdfapi/fpdf_parser.h" | 7 #include "core/include/fpdfapi/fpdf_parser.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 } | 64 } |
| 65 CPDF_DocRenderData* CPDF_Document::GetValidateRenderData() { | 65 CPDF_DocRenderData* CPDF_Document::GetValidateRenderData() { |
| 66 if (m_pDocRender) { | 66 if (m_pDocRender) { |
| 67 return m_pDocRender; | 67 return m_pDocRender; |
| 68 } | 68 } |
| 69 m_pDocRender = CPDF_ModuleMgr::Get()->GetRenderModule()->CreateDocData(this); | 69 m_pDocRender = CPDF_ModuleMgr::Get()->GetRenderModule()->CreateDocData(this); |
| 70 return m_pDocRender; | 70 return m_pDocRender; |
| 71 } | 71 } |
| 72 void CPDF_Document::LoadDoc() { | 72 void CPDF_Document::LoadDoc() { |
| 73 m_LastObjNum = m_pParser->GetLastObjNum(); | 73 m_LastObjNum = m_pParser->GetLastObjNum(); |
| 74 CPDF_Object* pRootObj = | 74 CPDF_Object* pRootObj = GetIndirectObject(m_pParser->GetRootObjNum()); |
| 75 GetIndirectObject(m_pParser->GetRootObjNum(), nullptr); | |
| 76 if (!pRootObj) { | 75 if (!pRootObj) { |
| 77 return; | 76 return; |
| 78 } | 77 } |
| 79 m_pRootDict = pRootObj->GetDict(); | 78 m_pRootDict = pRootObj->GetDict(); |
| 80 if (!m_pRootDict) { | 79 if (!m_pRootDict) { |
| 81 return; | 80 return; |
| 82 } | 81 } |
| 83 CPDF_Object* pInfoObj = | 82 CPDF_Object* pInfoObj = GetIndirectObject(m_pParser->GetInfoObjNum()); |
| 84 GetIndirectObject(m_pParser->GetInfoObjNum(), nullptr); | |
| 85 if (pInfoObj) { | 83 if (pInfoObj) { |
| 86 m_pInfoDict = pInfoObj->GetDict(); | 84 m_pInfoDict = pInfoObj->GetDict(); |
| 87 } | 85 } |
| 88 CPDF_Array* pIDArray = m_pParser->GetIDArray(); | 86 CPDF_Array* pIDArray = m_pParser->GetIDArray(); |
| 89 if (pIDArray) { | 87 if (pIDArray) { |
| 90 m_ID1 = pIDArray->GetString(0); | 88 m_ID1 = pIDArray->GetString(0); |
| 91 m_ID2 = pIDArray->GetString(1); | 89 m_ID2 = pIDArray->GetString(1); |
| 92 } | 90 } |
| 93 m_PageList.SetSize(RetrievePageCount()); | 91 m_PageList.SetSize(RetrievePageCount()); |
| 94 } | 92 } |
| 95 void CPDF_Document::LoadAsynDoc(CPDF_Dictionary* pLinearized) { | 93 void CPDF_Document::LoadAsynDoc(CPDF_Dictionary* pLinearized) { |
| 96 m_bLinearized = TRUE; | 94 m_bLinearized = TRUE; |
| 97 m_LastObjNum = m_pParser->GetLastObjNum(); | 95 m_LastObjNum = m_pParser->GetLastObjNum(); |
| 98 CPDF_Object* pIndirectObj = | 96 CPDF_Object* pIndirectObj = GetIndirectObject(m_pParser->GetRootObjNum()); |
| 99 GetIndirectObject(m_pParser->GetRootObjNum(), nullptr); | |
| 100 m_pRootDict = pIndirectObj ? pIndirectObj->GetDict() : nullptr; | 97 m_pRootDict = pIndirectObj ? pIndirectObj->GetDict() : nullptr; |
| 101 if (!m_pRootDict) { | 98 if (!m_pRootDict) { |
| 102 return; | 99 return; |
| 103 } | 100 } |
| 104 pIndirectObj = GetIndirectObject(m_pParser->GetInfoObjNum(), nullptr); | 101 pIndirectObj = GetIndirectObject(m_pParser->GetInfoObjNum()); |
| 105 m_pInfoDict = pIndirectObj ? pIndirectObj->GetDict() : nullptr; | 102 m_pInfoDict = pIndirectObj ? pIndirectObj->GetDict() : nullptr; |
| 106 CPDF_Array* pIDArray = m_pParser->GetIDArray(); | 103 CPDF_Array* pIDArray = m_pParser->GetIDArray(); |
| 107 if (pIDArray) { | 104 if (pIDArray) { |
| 108 m_ID1 = pIDArray->GetString(0); | 105 m_ID1 = pIDArray->GetString(0); |
| 109 m_ID2 = pIDArray->GetString(1); | 106 m_ID2 = pIDArray->GetString(1); |
| 110 } | 107 } |
| 111 FX_DWORD dwPageCount = 0; | 108 FX_DWORD dwPageCount = 0; |
| 112 CPDF_Object* pCount = pLinearized->GetElement("N"); | 109 CPDF_Object* pCount = pLinearized->GetElement("N"); |
| 113 if (ToNumber(pCount)) | 110 if (ToNumber(pCount)) |
| 114 dwPageCount = pCount->GetInteger(); | 111 dwPageCount = pCount->GetInteger(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 } | 172 } |
| 176 return NULL; | 173 return NULL; |
| 177 } | 174 } |
| 178 | 175 |
| 179 CPDF_Dictionary* CPDF_Document::GetPage(int iPage) { | 176 CPDF_Dictionary* CPDF_Document::GetPage(int iPage) { |
| 180 if (iPage < 0 || iPage >= m_PageList.GetSize()) | 177 if (iPage < 0 || iPage >= m_PageList.GetSize()) |
| 181 return nullptr; | 178 return nullptr; |
| 182 | 179 |
| 183 if (m_bLinearized && (iPage == (int)m_dwFirstPageNo)) { | 180 if (m_bLinearized && (iPage == (int)m_dwFirstPageNo)) { |
| 184 if (CPDF_Dictionary* pDict = | 181 if (CPDF_Dictionary* pDict = |
| 185 ToDictionary(GetIndirectObject(m_dwFirstPageObjNum, nullptr))) | 182 ToDictionary(GetIndirectObject(m_dwFirstPageObjNum))) { |
| 186 return pDict; | 183 return pDict; |
| 184 } |
| 187 } | 185 } |
| 188 | 186 |
| 189 int objnum = m_PageList.GetAt(iPage); | 187 int objnum = m_PageList.GetAt(iPage); |
| 190 if (objnum) { | 188 if (objnum) { |
| 191 if (CPDF_Dictionary* pDict = | 189 if (CPDF_Dictionary* pDict = ToDictionary(GetIndirectObject(objnum))) |
| 192 ToDictionary(GetIndirectObject(objnum, nullptr))) { | |
| 193 return pDict; | 190 return pDict; |
| 194 } | |
| 195 } | 191 } |
| 196 | 192 |
| 197 CPDF_Dictionary* pRoot = GetRoot(); | 193 CPDF_Dictionary* pRoot = GetRoot(); |
| 198 if (!pRoot) | 194 if (!pRoot) |
| 199 return nullptr; | 195 return nullptr; |
| 200 | 196 |
| 201 CPDF_Dictionary* pPages = pRoot->GetDict("Pages"); | 197 CPDF_Dictionary* pPages = pRoot->GetDict("Pages"); |
| 202 if (!pPages) | 198 if (!pPages) |
| 203 return nullptr; | 199 return nullptr; |
| 204 | 200 |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 | 333 |
| 338 void CPDF_Document::ClearPageData() { | 334 void CPDF_Document::ClearPageData() { |
| 339 if (m_pDocPage) | 335 if (m_pDocPage) |
| 340 CPDF_ModuleMgr::Get()->GetPageModule()->ClearDoc(this); | 336 CPDF_ModuleMgr::Get()->GetPageModule()->ClearDoc(this); |
| 341 } | 337 } |
| 342 | 338 |
| 343 void CPDF_Document::ClearRenderData() { | 339 void CPDF_Document::ClearRenderData() { |
| 344 if (m_pDocRender) | 340 if (m_pDocRender) |
| 345 CPDF_ModuleMgr::Get()->GetRenderModule()->ClearDocData(m_pDocRender); | 341 CPDF_ModuleMgr::Get()->GetRenderModule()->ClearDocData(m_pDocRender); |
| 346 } | 342 } |
| OLD | NEW |