summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_syntax_parser.h
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2018-07-25 17:35:18 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-25 17:35:18 +0000
commit5b322338073162afab98bb28c920692c73b995ed (patch)
tree87a3bcc964b484e4e6c8956d4d7aab465d9914f9 /core/fpdfapi/parser/cpdf_syntax_parser.h
parent1b54bc1474af7923f6b82496924978cb87844ff0 (diff)
downloadpdfium-5b322338073162afab98bb28c920692c73b995ed.tar.xz
Move CPDF_SyntaxParser init methods into ctor.
- CPDF_SyntaxParser can no longer be initialized multiple times. - Make the file length and header offset const. - Make the header offset type FX_FILESIZE consistently. - Simplify for the common case where the header offset is 0. Change-Id: I7138db1fbcec3b7578b0239b92fc1154fa4dc4ce Reviewed-on: https://pdfium-review.googlesource.com/38850 Reviewed-by: Art Snake <art-snake@yandex-team.ru> Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_syntax_parser.h')
-rw-r--r--core/fpdfapi/parser/cpdf_syntax_parser.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.h b/core/fpdfapi/parser/cpdf_syntax_parser.h
index ebd844c3e0..92f28d9874 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.h
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.h
@@ -27,15 +27,16 @@ class CPDF_SyntaxParser {
public:
enum class ParseType { kStrict, kLoose };
- CPDF_SyntaxParser();
+ static std::unique_ptr<CPDF_SyntaxParser> CreateForTesting(
+ const RetainPtr<IFX_SeekableReadStream>& pFileAccess,
+ FX_FILESIZE HeaderOffset);
+
+ explicit CPDF_SyntaxParser(
+ const RetainPtr<IFX_SeekableReadStream>& pFileAccess);
+ CPDF_SyntaxParser(const RetainPtr<CPDF_ReadValidator>& pValidator,
+ FX_FILESIZE HeaderOffset);
~CPDF_SyntaxParser();
- void InitParser(const RetainPtr<IFX_SeekableReadStream>& pFileAccess,
- uint32_t HeaderOffset);
-
- void InitParserWithValidator(const RetainPtr<CPDF_ReadValidator>& pValidator,
- uint32_t HeaderOffset);
-
void SetReadBufferSize(uint32_t read_buffer_size) {
m_ReadBufferSize = read_buffer_size;
}
@@ -104,17 +105,17 @@ class CPDF_SyntaxParser {
CPDF_IndirectObjectHolder* pObjList,
ParseType parse_type);
- FX_FILESIZE m_Pos;
+ RetainPtr<CPDF_ReadValidator> m_pFileAccess;
// The syntax parser use position relative to header offset.
// The header contains at file start, and can follow after some stuff. We
// ignore this stuff.
- FX_FILESIZE m_HeaderOffset;
- FX_FILESIZE m_FileLen;
+ const FX_FILESIZE m_HeaderOffset;
+ const FX_FILESIZE m_FileLen;
+ FX_FILESIZE m_Pos = 0;
WeakPtr<ByteStringPool> m_pPool;
std::vector<uint8_t> m_pFileBuf;
- RetainPtr<CPDF_ReadValidator> m_pFileAccess;
- FX_FILESIZE m_BufOffset;
- uint32_t m_WordSize;
+ FX_FILESIZE m_BufOffset = 0;
+ uint32_t m_WordSize = 0;
uint8_t m_WordBuffer[257];
uint32_t m_ReadBufferSize = CPDF_ModuleMgr::kFileBufSize;
};