summaryrefslogtreecommitdiff
path: root/core/fpdfapi/parser/cpdf_syntax_parser.cpp
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.cpp
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.cpp')
-rw-r--r--core/fpdfapi/parser/cpdf_syntax_parser.cpp46
1 files changed, 23 insertions, 23 deletions
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
index af5ff488db..3acad525f7 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
@@ -70,7 +70,29 @@ class ReadableSubStream : public IFX_SeekableReadStream {
// static
int CPDF_SyntaxParser::s_CurrentRecursionDepth = 0;
-CPDF_SyntaxParser::CPDF_SyntaxParser() = default;
+// static
+std::unique_ptr<CPDF_SyntaxParser> CPDF_SyntaxParser::CreateForTesting(
+ const RetainPtr<IFX_SeekableReadStream>& pFileAccess,
+ FX_FILESIZE HeaderOffset) {
+ return pdfium::MakeUnique<CPDF_SyntaxParser>(
+ pdfium::MakeRetain<CPDF_ReadValidator>(pFileAccess, nullptr),
+ HeaderOffset);
+}
+
+CPDF_SyntaxParser::CPDF_SyntaxParser(
+ const RetainPtr<IFX_SeekableReadStream>& pFileAccess)
+ : CPDF_SyntaxParser(
+ pdfium::MakeRetain<CPDF_ReadValidator>(pFileAccess, nullptr),
+ 0) {}
+
+CPDF_SyntaxParser::CPDF_SyntaxParser(
+ const RetainPtr<CPDF_ReadValidator>& validator,
+ FX_FILESIZE HeaderOffset)
+ : m_pFileAccess(validator),
+ m_HeaderOffset(HeaderOffset),
+ m_FileLen(m_pFileAccess->GetSize()) {
+ ASSERT(m_HeaderOffset <= m_FileLen);
+}
CPDF_SyntaxParser::~CPDF_SyntaxParser() = default;
@@ -702,28 +724,6 @@ std::unique_ptr<CPDF_Stream> CPDF_SyntaxParser::ReadStream(
return pStream;
}
-void CPDF_SyntaxParser::InitParser(
- const RetainPtr<IFX_SeekableReadStream>& pFileAccess,
- uint32_t HeaderOffset) {
- ASSERT(pFileAccess);
- return InitParserWithValidator(
- pdfium::MakeRetain<CPDF_ReadValidator>(pFileAccess, nullptr),
- HeaderOffset);
-}
-
-void CPDF_SyntaxParser::InitParserWithValidator(
- const RetainPtr<CPDF_ReadValidator>& validator,
- uint32_t HeaderOffset) {
- ASSERT(validator);
- m_pFileBuf.clear();
- m_HeaderOffset = HeaderOffset;
- m_FileLen = validator->GetSize();
- ASSERT(m_HeaderOffset <= m_FileLen);
- m_Pos = 0;
- m_pFileAccess = validator;
- m_BufOffset = 0;
-}
-
uint32_t CPDF_SyntaxParser::GetDirectNum() {
bool bIsNumber;
GetNextWordInternal(&bIsNumber);