Chromium Code Reviews| Index: core/include/fpdfapi/fpdf_parser.h |
| diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h |
| index b554673d80c029f7bba02e16d0d6b3fc8230b3fa..ff0c6be5512ea92cb1c4e7194ea76505c99b61a2 100644 |
| --- a/core/include/fpdfapi/fpdf_parser.h |
| +++ b/core/include/fpdfapi/fpdf_parser.h |
| @@ -28,6 +28,7 @@ class CPDF_Object; |
| class CPDF_Parser; |
| class CPDF_Pattern; |
| class CPDF_StandardSecurityHandler; |
| +class CPDF_SyntaxParser; |
|
dsinclair
2016/03/08 01:15:05
What's our thoughts on forward declarations? The s
Tom Sepez
2016/03/08 19:35:41
In a header file, if the class is only used as a p
|
| class IPDF_SecurityHandler; |
| #define FPDFPERM_PRINT 0x0004 |
| @@ -231,81 +232,6 @@ class CPDF_SimpleParser { |
| FX_DWORD m_dwCurPos; |
| }; |
| -class CPDF_SyntaxParser { |
| - public: |
| - CPDF_SyntaxParser(); |
| - ~CPDF_SyntaxParser(); |
| - |
| - void InitParser(IFX_FileRead* pFileAccess, FX_DWORD HeaderOffset); |
| - |
| - FX_FILESIZE SavePos() const { return m_Pos; } |
| - void RestorePos(FX_FILESIZE pos) { m_Pos = pos; } |
| - |
| - CPDF_Object* GetObject(CPDF_IndirectObjectHolder* pObjList, |
| - FX_DWORD objnum, |
| - FX_DWORD gennum, |
| - FX_BOOL bDecrypt); |
| - CPDF_Object* GetObjectByStrict(CPDF_IndirectObjectHolder* pObjList, |
| - FX_DWORD objnum, |
| - FX_DWORD gennum); |
| - CFX_ByteString GetKeyword(); |
| - |
| - void ToNextLine(); |
| - void ToNextWord(); |
| - |
| - FX_BOOL SearchWord(const CFX_ByteStringC& word, |
| - FX_BOOL bWholeWord, |
| - FX_BOOL bForward, |
| - FX_FILESIZE limit); |
| - int SearchMultiWord(const CFX_ByteStringC& words, |
| - FX_BOOL bWholeWord, |
| - FX_FILESIZE limit); |
| - FX_FILESIZE FindTag(const CFX_ByteStringC& tag, FX_FILESIZE limit); |
| - |
| - void SetEncrypt(std::unique_ptr<CPDF_CryptoHandler> pCryptoHandler); |
| - |
| - FX_BOOL ReadBlock(uint8_t* pBuf, FX_DWORD size); |
| - FX_BOOL GetCharAt(FX_FILESIZE pos, uint8_t& ch); |
| - CFX_ByteString GetNextWord(bool* bIsNumber); |
| - |
| - private: |
| - friend class CPDF_Parser; |
| - friend class CPDF_DataAvail; |
| - friend class fpdf_parser_parser_ReadHexString_Test; |
| - |
| - static const int kParserMaxRecursionDepth = 64; |
| - static int s_CurrentRecursionDepth; |
| - |
| - uint32_t GetDirectNum(); |
| - |
| - FX_BOOL GetNextChar(uint8_t& ch); |
| - FX_BOOL GetCharAtBackward(FX_FILESIZE pos, uint8_t& ch); |
| - void GetNextWordInternal(bool* bIsNumber); |
| - bool IsWholeWord(FX_FILESIZE startpos, |
| - FX_FILESIZE limit, |
| - const CFX_ByteStringC& tag, |
| - FX_BOOL checkKeyword); |
| - |
| - CFX_ByteString ReadString(); |
| - CFX_ByteString ReadHexString(); |
| - unsigned int ReadEOLMarkers(FX_FILESIZE pos); |
| - CPDF_Stream* ReadStream(CPDF_Dictionary* pDict, |
| - FX_DWORD objnum, |
| - FX_DWORD gennum); |
| - |
| - FX_FILESIZE m_Pos; |
| - int m_MetadataObjnum; |
| - IFX_FileRead* m_pFileAccess; |
| - FX_DWORD m_HeaderOffset; |
| - FX_FILESIZE m_FileLen; |
| - uint8_t* m_pFileBuf; |
| - FX_DWORD m_BufSize; |
| - FX_FILESIZE m_BufOffset; |
| - std::unique_ptr<CPDF_CryptoHandler> m_pCryptoHandler; |
| - uint8_t m_WordBuffer[257]; |
| - FX_DWORD m_WordSize; |
| -}; |
| - |
| class CPDF_Parser { |
| public: |
| enum Error { |
| @@ -324,11 +250,6 @@ class CPDF_Parser { |
| void SetPassword(const FX_CHAR* password) { m_Password = password; } |
| CFX_ByteString GetPassword() { return m_Password; } |
| - |
| - CPDF_CryptoHandler* GetCryptoHandler() { |
| - return m_Syntax.m_pCryptoHandler.get(); |
| - } |
| - |
| CPDF_Dictionary* GetTrailer() const { return m_pTrailer; } |
| FX_FILESIZE GetLastXRefOffset() const { return m_LastXRefOffset; } |
| CPDF_Document* GetDocument() const { return m_pDocument; } |
| @@ -350,12 +271,13 @@ class CPDF_Parser { |
| bool IsVersionUpdated() const { return m_bVersionUpdated; } |
| bool IsObjectFreeOrNull(FX_DWORD objnum) const; |
| FX_BOOL IsFormStream(FX_DWORD objnum, FX_BOOL& bForm); |
| + CPDF_CryptoHandler* GetCryptoHandler(); |
| + IFX_FileRead* GetFileAccess() const; |
| FX_FILESIZE GetObjectOffset(FX_DWORD objnum) const; |
| FX_FILESIZE GetObjectSize(FX_DWORD objnum) const; |
| void GetIndirectBinary(FX_DWORD objnum, uint8_t*& pBuffer, FX_DWORD& size); |
| - IFX_FileRead* GetFileAccess() const { return m_Syntax.m_pFileAccess; } |
| int GetFileVersion() const { return m_FileVersion; } |
| FX_BOOL IsXRefStream() const { return m_bXRefStream; } |
| @@ -402,7 +324,7 @@ class CPDF_Parser { |
| void ShrinkObjectMap(FX_DWORD size); |
| CPDF_Document* m_pDocument; |
| - CPDF_SyntaxParser m_Syntax; |
| + std::unique_ptr<CPDF_SyntaxParser> m_pSyntax; |
| bool m_bOwnFileRead; |
| int m_FileVersion; |
| CPDF_Dictionary* m_pTrailer; |