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 |