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 "parser_int.h" | 7 #include "parser_int.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 3581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3592 m_docStatus = PDF_DATAAVAIL_ERROR; | 3592 m_docStatus = PDF_DATAAVAIL_ERROR; |
3593 return FALSE; | 3593 return FALSE; |
3594 } | 3594 } |
3595 if (!IsDataAvail(szHSStart, szHSLength, pHints)) { | 3595 if (!IsDataAvail(szHSStart, szHSLength, pHints)) { |
3596 return FALSE; | 3596 return FALSE; |
3597 } | 3597 } |
3598 m_syntaxParser.InitParser(m_pFileRead, m_dwHeaderOffset); | 3598 m_syntaxParser.InitParser(m_pFileRead, m_dwHeaderOffset); |
3599 nonstd::unique_ptr<CPDF_HintTables> pHintTables( | 3599 nonstd::unique_ptr<CPDF_HintTables> pHintTables( |
3600 new CPDF_HintTables(this, pDict)); | 3600 new CPDF_HintTables(this, pDict)); |
3601 CPDF_Stream* pHintStream = (CPDF_Stream*)ParseIndirectObjectAt(szHSStart, 0); | 3601 CPDF_Stream* pHintStream = (CPDF_Stream*)ParseIndirectObjectAt(szHSStart, 0); |
3602 FX_BOOL bLoaded = FALSE; | 3602 if (pHintStream && pHintStream->GetType() == PDFOBJ_STREAM && |
3603 if (pHintTables && pHintStream && pHintStream->GetType() == PDFOBJ_STREAM) { | 3603 pHintTables->LoadHintStream(pHintStream)) |
3604 bLoaded = pHintTables->LoadHintStream(pHintStream); | |
3605 } | |
3606 if (!bLoaded) { | |
3607 m_pHintTables.reset(pHintTables.release()); | 3604 m_pHintTables.reset(pHintTables.release()); |
3608 } | 3605 |
3609 m_docStatus = PDF_DATAAVAIL_DONE; | 3606 m_docStatus = PDF_DATAAVAIL_DONE; |
3610 return TRUE; | 3607 return TRUE; |
3611 } | 3608 } |
3612 CPDF_Object* CPDF_DataAvail::ParseIndirectObjectAt( | 3609 CPDF_Object* CPDF_DataAvail::ParseIndirectObjectAt( |
3613 FX_FILESIZE pos, | 3610 FX_FILESIZE pos, |
3614 FX_DWORD objnum, | 3611 FX_DWORD objnum, |
3615 CPDF_IndirectObjects* pObjList) { | 3612 CPDF_IndirectObjects* pObjList) { |
3616 FX_FILESIZE SavedPos = m_syntaxParser.SavePos(); | 3613 FX_FILESIZE SavedPos = m_syntaxParser.SavePos(); |
3617 m_syntaxParser.RestorePos(pos); | 3614 m_syntaxParser.RestorePos(pos); |
3618 FX_BOOL bIsNumber; | 3615 FX_BOOL bIsNumber; |
(...skipping 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4941 if (!m_pLinearizedDict) | 4938 if (!m_pLinearizedDict) |
4942 return -1; | 4939 return -1; |
4943 CPDF_Array* pRange = m_pLinearizedDict->GetArray(FX_BSTRC("H")); | 4940 CPDF_Array* pRange = m_pLinearizedDict->GetArray(FX_BSTRC("H")); |
4944 if (!pRange) | 4941 if (!pRange) |
4945 return -1; | 4942 return -1; |
4946 CPDF_Object* pStreamLen = pRange->GetElementValue(1); | 4943 CPDF_Object* pStreamLen = pRange->GetElementValue(1); |
4947 if (!pStreamLen) | 4944 if (!pStreamLen) |
4948 return -1; | 4945 return -1; |
4949 return pStreamLen->GetInteger(); | 4946 return pStreamLen->GetInteger(); |
4950 } | 4947 } |
OLD | NEW |