diff options
author | Tom Sepez <tsepez@chromium.org> | 2017-04-04 14:37:18 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-04 21:48:48 +0000 |
commit | afd0d1f488ea55da545b3310fd8f22e45522a695 (patch) | |
tree | 89136eba4669421b6f828edb9f3d69ee558110d0 /core/fpdfapi/parser/cpdf_stream.cpp | |
parent | 4f8b044b95dc282959dfe41453e2a9c1ec7e9354 (diff) | |
download | pdfium-afd0d1f488ea55da545b3310fd8f22e45522a695.tar.xz |
RefCount CPDF_StreamAcc all the time.
Pass stream argument to constructor; it feels like a
stream accessor should always be made from a stream rather
than passing one in after the fact.
Change-Id: Iaa46cb37677b81f0170f5d39bab76ad38ea4af44
Reviewed-on: https://pdfium-review.googlesource.com/3620
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fpdfapi/parser/cpdf_stream.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_stream.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/core/fpdfapi/parser/cpdf_stream.cpp b/core/fpdfapi/parser/cpdf_stream.cpp index 532fd753f8..e4f279a32d 100644 --- a/core/fpdfapi/parser/cpdf_stream.cpp +++ b/core/fpdfapi/parser/cpdf_stream.cpp @@ -83,17 +83,17 @@ std::unique_ptr<CPDF_Object> CPDF_Stream::CloneNonCyclic( bool bDirect, std::set<const CPDF_Object*>* pVisited) const { pVisited->insert(this); - CPDF_StreamAcc acc; - acc.LoadAllData(this, true); + auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(this); + pAcc->LoadAllData(true); - uint32_t streamSize = acc.GetSize(); + uint32_t streamSize = pAcc->GetSize(); CPDF_Dictionary* pDict = GetDict(); std::unique_ptr<CPDF_Dictionary> pNewDict; if (pDict && !pdfium::ContainsKey(*pVisited, pDict)) { pNewDict = ToDictionary( static_cast<CPDF_Object*>(pDict)->CloneNonCyclic(bDirect, pVisited)); } - return pdfium::MakeUnique<CPDF_Stream>(acc.DetachData(), streamSize, + return pdfium::MakeUnique<CPDF_Stream>(pAcc->DetachData(), streamSize, std::move(pNewDict)); } @@ -127,7 +127,7 @@ bool CPDF_Stream::HasFilter() const { } CFX_WideString CPDF_Stream::GetUnicodeText() const { - CPDF_StreamAcc stream; - stream.LoadAllData(this, false); - return PDF_DecodeText(stream.GetData(), stream.GetSize()); + auto pAcc = pdfium::MakeRetain<CPDF_StreamAcc>(this); + pAcc->LoadAllData(false); + return PDF_DecodeText(pAcc->GetData(), pAcc->GetSize()); } |