Add public access for read stream into CPDF_SyntaxParser

Change-Id: I5deb6049db41387ac030a6ba5296ee6187120190
Reviewed-on: https://pdfium-review.googlesource.com/9470
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index 657d0e0..2ca820e 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -126,7 +126,7 @@
 }
 
 CFX_RetainPtr<IFX_SeekableReadStream> CPDF_Parser::GetFileAccess() const {
-  return m_pSyntax->m_pFileAccess;
+  return m_pSyntax->GetFileAccess();
 }
 
 void CPDF_Parser::ShrinkObjectMap(uint32_t objnum) {
@@ -615,7 +615,7 @@
     bool bOverFlow = false;
     uint32_t size =
         std::min((uint32_t)(m_pSyntax->m_FileLen - pos), kBufferSize);
-    if (!m_pSyntax->m_pFileAccess->ReadBlock(buffer.data(), pos, size))
+    if (!m_pSyntax->GetFileAccess()->ReadBlock(buffer.data(), pos, size))
       break;
 
     for (uint32_t i = 0; i < size; i++) {
@@ -1506,7 +1506,6 @@
     return FORMAT_ERROR;
 
   if (!IsLinearizedFile(pFileAccess, offset)) {
-    m_pSyntax->m_pFileAccess = nullptr;
     return StartParse(pFileAccess, std::move(pDocument));
   }
   m_bHasParsed = true;
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
index ce5a835..5fa3372 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
@@ -879,3 +879,7 @@
     const CFX_RetainPtr<CPDF_CryptoHandler>& pCryptoHandler) {
   m_pCryptoHandler = pCryptoHandler;
 }
+
+CFX_RetainPtr<IFX_SeekableReadStream> CPDF_SyntaxParser::GetFileAccess() const {
+  return m_pFileAccess;
+}
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.h b/core/fpdfapi/parser/cpdf_syntax_parser.h
index 4c5e252..d522b4a 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.h
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.h
@@ -53,6 +53,8 @@
   bool GetCharAt(FX_FILESIZE pos, uint8_t& ch);
   CFX_ByteString GetNextWord(bool* bIsNumber);
 
+  CFX_RetainPtr<IFX_SeekableReadStream> GetFileAccess() const;
+
  private:
   friend class CPDF_Parser;
   friend class CPDF_DataAvail;