From 0f567261d33a70860bb3ec3db4cf1185df1a9a54 Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 12 Oct 2018 17:02:40 +0000 Subject: Make PDF_DataDecode()'s buffer out parameter a std::unique_ptr. Change-Id: Id8f7473c590ef94799d0dd29f5de790a453c86f6 Reviewed-on: https://pdfium-review.googlesource.com/c/42603 Reviewed-by: Tom Sepez Commit-Queue: Lei Zhang --- core/fpdfapi/parser/cpdf_stream_acc.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'core/fpdfapi/parser/cpdf_stream_acc.cpp') diff --git a/core/fpdfapi/parser/cpdf_stream_acc.cpp b/core/fpdfapi/parser/cpdf_stream_acc.cpp index c87e404186..6516a2ff2c 100644 --- a/core/fpdfapi/parser/cpdf_stream_acc.cpp +++ b/core/fpdfapi/parser/cpdf_stream_acc.cpp @@ -115,7 +115,7 @@ void CPDF_StreamAcc::ProcessFilteredData(uint32_t estimated_size, pSrcData = std::move(pTempSrcData); } - uint8_t* pDecodedData = nullptr; + std::unique_ptr pDecodedData; uint32_t dwDecodedSize = 0; if (!PDF_DataDecode({pSrcData.Get(), dwSrcSize}, m_pStream->GetDict(), estimated_size, bImageAcc, &pDecodedData, &dwDecodedSize, @@ -125,16 +125,13 @@ void CPDF_StreamAcc::ProcessFilteredData(uint32_t estimated_size, return; } - if (!pDecodedData) - return; - - if (pDecodedData == pSrcData.Get()) { + if (pDecodedData) { + ASSERT(pDecodedData.get() != pSrcData.Get()); + m_pData = std::move(pDecodedData); + m_dwSize = dwDecodedSize; + } else { m_pData = std::move(pSrcData); m_dwSize = dwSrcSize; - } else { - std::unique_ptr p(pDecodedData); - m_pData = std::move(p); - m_dwSize = dwDecodedSize; } } -- cgit v1.2.3