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 #ifndef _FPDF_PARSER_ | 7 #ifndef _FPDF_PARSER_ |
8 #define _FPDF_PARSER_ | 8 #define _FPDF_PARSER_ |
9 #ifndef _FX_BASIC_H_ | 9 #ifndef _FX_BASIC_H_ |
10 #include "../fxcrt/fx_ext.h" | 10 #include "../fxcrt/fx_ext.h" |
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 FX_FILESIZE SavePos() | 254 FX_FILESIZE SavePos() |
255 { | 255 { |
256 return m_Pos; | 256 return m_Pos; |
257 } | 257 } |
258 | 258 |
259 void RestorePos(FX_FILESIZE pos) | 259 void RestorePos(FX_FILESIZE pos) |
260 { | 260 { |
261 m_Pos = pos; | 261 m_Pos = pos; |
262 } | 262 } |
263 | 263 |
264 CPDF_Object*» » GetObject(CPDF_IndirectObjects* pObjList, FX_DWO
RD objnum, FX_DWORD gennum, int level, struct PARSE_CONTEXT* pContext = NULL, FX
_BOOL bDecrypt = TRUE); | 264 CPDF_Object*» » GetObject(CPDF_IndirectObjects* pObjList, FX_DWO
RD objnum, FX_DWORD gennum, struct PARSE_CONTEXT* pContext = NULL, FX_BOOL bDecr
ypt = TRUE); |
265 | 265 |
266 | 266 |
267 CPDF_Object*» » GetObjectByStrict(CPDF_IndirectObjects* pObjList
, FX_DWORD objnum, FX_DWORD gennum, int level, struct PARSE_CONTEXT* pContext =
NULL); | 267 CPDF_Object*» » GetObjectByStrict(CPDF_IndirectObjects* pObjList
, FX_DWORD objnum, FX_DWORD gennum, struct PARSE_CONTEXT* pContext = NULL); |
268 | 268 |
269 int GetDirectNum(); | 269 int GetDirectNum(); |
270 | 270 |
271 CFX_ByteString GetString(FX_DWORD objnum, FX_DWORD gennum); | 271 CFX_ByteString GetString(FX_DWORD objnum, FX_DWORD gennum); |
272 | 272 |
273 CFX_ByteString GetName(); | 273 CFX_ByteString GetName(); |
274 | 274 |
275 CFX_ByteString GetKeyword(); | 275 CFX_ByteString GetKeyword(); |
276 | 276 |
277 void GetBinary(FX_BYTE* buffer, FX_DWORD size
); | 277 void GetBinary(FX_BYTE* buffer, FX_DWORD size
); |
(...skipping 17 matching lines...) Expand all Loading... |
295 { | 295 { |
296 return m_pCryptoHandler != NULL; | 296 return m_pCryptoHandler != NULL; |
297 } | 297 } |
298 | 298 |
299 FX_BOOL GetCharAt(FX_FILESIZE pos, FX_BYTE& ch); | 299 FX_BOOL GetCharAt(FX_FILESIZE pos, FX_BYTE& ch); |
300 | 300 |
301 FX_BOOL ReadBlock(FX_BYTE* pBuf, FX_DWORD size); | 301 FX_BOOL ReadBlock(FX_BYTE* pBuf, FX_DWORD size); |
302 | 302 |
303 CFX_ByteString GetNextWord(FX_BOOL& bIsNumber); | 303 CFX_ByteString GetNextWord(FX_BOOL& bIsNumber); |
304 protected: | 304 protected: |
| 305 static const int kParserMaxRecursionDepth = 64; |
| 306 static int s_CurrentRecursionDepth; |
305 | 307 |
306 virtual FX_BOOL GetNextChar(FX_BYTE& ch); | 308 virtual FX_BOOL GetNextChar(FX_BYTE& ch); |
307 | 309 |
308 FX_BOOL GetCharAtBackward(FX_FILESIZE pos, FX_BY
TE& ch); | 310 FX_BOOL GetCharAtBackward(FX_FILESIZE pos, FX_BY
TE& ch); |
309 | 311 |
310 void GetNextWord(); | 312 void GetNextWord(); |
311 | 313 |
312 FX_BOOL IsWholeWord(FX_FILESIZE startpos, FX_FIL
ESIZE limit, FX_LPCBYTE tag, FX_DWORD taglen); | 314 FX_BOOL IsWholeWord(FX_FILESIZE startpos, FX_FIL
ESIZE limit, FX_LPCBYTE tag, FX_DWORD taglen); |
313 | 315 |
314 CFX_ByteString ReadString(); | 316 CFX_ByteString ReadString(); |
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 CPDF_Object* ParseIndirectObjectAtByStrict(CPDF_IndirectObjec
ts* pObjList, FX_FILESIZE pos, FX_DWORD objnum, | 515 CPDF_Object* ParseIndirectObjectAtByStrict(CPDF_IndirectObjec
ts* pObjList, FX_FILESIZE pos, FX_DWORD objnum, |
514 struct PARSE_CONTEXT* pContext, FX_FILESIZE *pResultPos); | 516 struct PARSE_CONTEXT* pContext, FX_FILESIZE *pResultPos); |
515 | 517 |
516 FX_DWORD StartAsynParse(IFX_FileRead* pFile, FX_BOOL bReP
arse = FALSE, FX_BOOL bOwnFileRead = TRUE); | 518 FX_DWORD StartAsynParse(IFX_FileRead* pFile, FX_BOOL bReP
arse = FALSE, FX_BOOL bOwnFileRead = TRUE); |
517 | 519 |
518 FX_DWORD GetFirstPageNo() | 520 FX_DWORD GetFirstPageNo() |
519 { | 521 { |
520 return m_dwFirstPageNo; | 522 return m_dwFirstPageNo; |
521 } | 523 } |
522 protected: | 524 protected: |
523 | |
524 CPDF_Document* m_pDocument; | 525 CPDF_Document* m_pDocument; |
525 | 526 |
526 CPDF_SyntaxParser m_Syntax; | 527 CPDF_SyntaxParser m_Syntax; |
527 FX_BOOL m_bOwnFileRead; | 528 FX_BOOL m_bOwnFileRead; |
528 CPDF_Object* ParseDirect(CPDF_Object* pObj); | 529 CPDF_Object* ParseDirect(CPDF_Object* pObj); |
529 | 530 |
530 FX_BOOL LoadAllCrossRefV4(FX_FILESIZE pos); | 531 FX_BOOL LoadAllCrossRefV4(FX_FILESIZE pos); |
531 | 532 |
532 FX_BOOL LoadAllCrossRefV5(FX_FILESIZE pos); | 533 FX_BOOL LoadAllCrossRefV5(FX_FILESIZE pos); |
533 | 534 |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
940 PDF_DATAAVAIL_PAGETREE, | 941 PDF_DATAAVAIL_PAGETREE, |
941 PDF_DATAAVAIL_PAGE, | 942 PDF_DATAAVAIL_PAGE, |
942 PDF_DATAAVAIL_PAGE_LATERLOAD, | 943 PDF_DATAAVAIL_PAGE_LATERLOAD, |
943 PDF_DATAAVAIL_RESOURCES, | 944 PDF_DATAAVAIL_RESOURCES, |
944 PDF_DATAAVAIL_DONE, | 945 PDF_DATAAVAIL_DONE, |
945 PDF_DATAAVAIL_ERROR, | 946 PDF_DATAAVAIL_ERROR, |
946 PDF_DATAAVAIL_LOADALLFILE, | 947 PDF_DATAAVAIL_LOADALLFILE, |
947 PDF_DATAAVAIL_TRAILER_APPEND | 948 PDF_DATAAVAIL_TRAILER_APPEND |
948 }; | 949 }; |
949 #endif | 950 #endif |
OLD | NEW |