From 833619b4441915c7c55085d44b3221eaef0d9800 Mon Sep 17 00:00:00 2001 From: tsepez Date: Wed, 7 Dec 2016 09:21:17 -0800 Subject: Refcount all the IFX_ stream classes all the time. We can remove a lot of "bOwnsStream" logic in the process. Always pass these by const reference, in case the called method wants to hang on to the stream (one exception is where we stick a raw pointer into a void* slot in a context from another layer). Review-Url: https://codereview.chromium.org/2451493002 --- core/fpdfapi/parser/cpdf_parser.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'core/fpdfapi/parser/cpdf_parser.h') diff --git a/core/fpdfapi/parser/cpdf_parser.h b/core/fpdfapi/parser/cpdf_parser.h index 5e2cdea08d..f8ff7a17ec 100644 --- a/core/fpdfapi/parser/cpdf_parser.h +++ b/core/fpdfapi/parser/cpdf_parser.h @@ -43,8 +43,9 @@ class CPDF_Parser { CPDF_Parser(); ~CPDF_Parser(); - Error StartParse(IFX_SeekableReadStream* pFile, CPDF_Document* pDocument); - Error StartLinearizedParse(IFX_SeekableReadStream* pFile, + Error StartParse(const CFX_RetainPtr& pFile, + CPDF_Document* pDocument); + Error StartLinearizedParse(const CFX_RetainPtr& pFile, CPDF_Document* pDocument); void SetPassword(const FX_CHAR* password) { m_Password = password; } @@ -71,7 +72,7 @@ class CPDF_Parser { bool IsVersionUpdated() const { return m_bVersionUpdated; } bool IsObjectFreeOrNull(uint32_t objnum) const; CPDF_CryptoHandler* GetCryptoHandler(); - IFX_SeekableReadStream* GetFileAccess() const; + CFX_RetainPtr GetFileAccess() const; FX_FILESIZE GetObjectOffset(uint32_t objnum) const; FX_FILESIZE GetObjectSize(uint32_t objnum) const; @@ -140,7 +141,9 @@ class CPDF_Parser { bool LoadLinearizedAllCrossRefV5(FX_FILESIZE pos); Error LoadLinearizedMainXRefTable(); CPDF_StreamAcc* GetObjectStream(uint32_t number); - bool IsLinearizedFile(IFX_SeekableReadStream* pFileAccess, uint32_t offset); + bool IsLinearizedFile( + const CFX_RetainPtr& pFileAccess, + uint32_t offset); void SetEncryptDictionary(CPDF_Dictionary* pDict); void ShrinkObjectMap(uint32_t size); // A simple check whether the cross reference table matches with @@ -149,7 +152,6 @@ class CPDF_Parser { CPDF_Document* m_pDocument; // not owned bool m_bHasParsed; - bool m_bOwnFileRead; bool m_bXRefStream; bool m_bVersionUpdated; int m_FileVersion; -- cgit v1.2.3