| 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 #include "core/fpdfapi/parser/cpdf_parser.h" | 7 #include "core/fpdfapi/parser/cpdf_parser.h" |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 1541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1552 uint32_t dwSaveMetadataObjnum = m_pSyntax->m_MetadataObjnum; | 1552 uint32_t dwSaveMetadataObjnum = m_pSyntax->m_MetadataObjnum; |
| 1553 m_pSyntax->m_MetadataObjnum = 0; | 1553 m_pSyntax->m_MetadataObjnum = 0; |
| 1554 m_pTrailer.reset(); | 1554 m_pTrailer.reset(); |
| 1555 m_pSyntax->RestorePos(m_LastXRefOffset - m_pSyntax->m_HeaderOffset); | 1555 m_pSyntax->RestorePos(m_LastXRefOffset - m_pSyntax->m_HeaderOffset); |
| 1556 | 1556 |
| 1557 uint8_t ch = 0; | 1557 uint8_t ch = 0; |
| 1558 uint32_t dwCount = 0; | 1558 uint32_t dwCount = 0; |
| 1559 m_pSyntax->GetNextChar(ch); | 1559 m_pSyntax->GetNextChar(ch); |
| 1560 while (PDFCharIsWhitespace(ch)) { | 1560 while (PDFCharIsWhitespace(ch)) { |
| 1561 ++dwCount; | 1561 ++dwCount; |
| 1562 if (m_pSyntax->m_FileLen >= | 1562 if (m_pSyntax->m_FileLen <= |
| 1563 (FX_FILESIZE)(m_pSyntax->SavePos() + m_pSyntax->m_HeaderOffset)) { | 1563 (FX_FILESIZE)(m_pSyntax->SavePos() + m_pSyntax->m_HeaderOffset)) { |
| 1564 break; | 1564 break; |
| 1565 } | 1565 } |
| 1566 m_pSyntax->GetNextChar(ch); | 1566 m_pSyntax->GetNextChar(ch); |
| 1567 } | 1567 } |
| 1568 m_LastXRefOffset += dwCount; | 1568 m_LastXRefOffset += dwCount; |
| 1569 m_ObjectStreamMap.clear(); | 1569 m_ObjectStreamMap.clear(); |
| 1570 m_ObjCache.clear(); | 1570 m_ObjCache.clear(); |
| 1571 | 1571 |
| 1572 if (!LoadLinearizedAllCrossRefV4(m_LastXRefOffset, m_dwXrefStartObjNum) && | 1572 if (!LoadLinearizedAllCrossRefV4(m_LastXRefOffset, m_dwXrefStartObjNum) && |
| 1573 !LoadLinearizedAllCrossRefV5(m_LastXRefOffset)) { | 1573 !LoadLinearizedAllCrossRefV5(m_LastXRefOffset)) { |
| 1574 m_LastXRefOffset = 0; | 1574 m_LastXRefOffset = 0; |
| 1575 m_pSyntax->m_MetadataObjnum = dwSaveMetadataObjnum; | 1575 m_pSyntax->m_MetadataObjnum = dwSaveMetadataObjnum; |
| 1576 return FORMAT_ERROR; | 1576 return FORMAT_ERROR; |
| 1577 } | 1577 } |
| 1578 | 1578 |
| 1579 m_pSyntax->m_MetadataObjnum = dwSaveMetadataObjnum; | 1579 m_pSyntax->m_MetadataObjnum = dwSaveMetadataObjnum; |
| 1580 return SUCCESS; | 1580 return SUCCESS; |
| 1581 } | 1581 } |
| OLD | NEW |