summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/fpdfapi/parser/cpdf_object_stream.cpp3
-rw-r--r--core/fxcrt/cfx_memorystream.cpp22
-rw-r--r--core/fxcrt/cfx_memorystream.h5
-rw-r--r--xfa/fgas/font/cfgas_fontmgr.cpp5
4 files changed, 13 insertions, 22 deletions
diff --git a/core/fpdfapi/parser/cpdf_object_stream.cpp b/core/fpdfapi/parser/cpdf_object_stream.cpp
index a85cbf1ffa..d6b3d365f6 100644
--- a/core/fpdfapi/parser/cpdf_object_stream.cpp
+++ b/core/fpdfapi/parser/cpdf_object_stream.cpp
@@ -97,8 +97,7 @@ void CPDF_ObjectStream::Init(const CPDF_Stream* stream) {
stream_acc->LoadAllDataFiltered();
const uint32_t data_size = stream_acc->GetSize();
data_stream_ = pdfium::MakeRetain<CFX_MemoryStream>(
- stream_acc->DetachData().release(), static_cast<size_t>(data_size),
- true);
+ stream_acc->DetachData().release(), data_size);
}
CPDF_SyntaxParser syntax(data_stream_);
diff --git a/core/fxcrt/cfx_memorystream.cpp b/core/fxcrt/cfx_memorystream.cpp
index 15cde78f42..b0a0bd91d1 100644
--- a/core/fxcrt/cfx_memorystream.cpp
+++ b/core/fxcrt/cfx_memorystream.cpp
@@ -17,26 +17,16 @@ constexpr size_t kBlockSize = 64 * 1024;
} // namespace
CFX_MemoryStream::CFX_MemoryStream(bool bConsecutive)
- : m_nTotalSize(0),
- m_nCurSize(0),
- m_bConsecutive(bConsecutive),
- m_bTakeOver(true) {}
-
-CFX_MemoryStream::CFX_MemoryStream(uint8_t* pBuffer,
- size_t nSize,
- bool bTakeOver)
- : m_nTotalSize(nSize),
- m_nCurSize(nSize),
- m_bConsecutive(true),
- m_bTakeOver(bTakeOver) {
+ : m_nTotalSize(0), m_nCurSize(0), m_bConsecutive(bConsecutive) {}
+
+CFX_MemoryStream::CFX_MemoryStream(uint8_t* pBuffer, size_t nSize)
+ : m_nTotalSize(nSize), m_nCurSize(nSize), m_bConsecutive(true) {
m_Blocks.push_back(pBuffer);
}
CFX_MemoryStream::~CFX_MemoryStream() {
- if (m_bTakeOver) {
- for (uint8_t* pBlock : m_Blocks)
- FX_Free(pBlock);
- }
+ for (uint8_t* pBlock : m_Blocks)
+ FX_Free(pBlock);
}
FX_FILESIZE CFX_MemoryStream::GetSize() {
diff --git a/core/fxcrt/cfx_memorystream.h b/core/fxcrt/cfx_memorystream.h
index cd89c629fc..95f62b6a2c 100644
--- a/core/fxcrt/cfx_memorystream.h
+++ b/core/fxcrt/cfx_memorystream.h
@@ -32,7 +32,9 @@ class CFX_MemoryStream : public IFX_SeekableStream {
private:
explicit CFX_MemoryStream(bool bConsecutive);
- CFX_MemoryStream(uint8_t* pBuffer, size_t nSize, bool bTakeOver);
+
+ // Takes ownership of |pBuffer|.
+ CFX_MemoryStream(uint8_t* pBuffer, size_t nSize);
~CFX_MemoryStream() override;
bool ExpandBlocks(size_t size);
@@ -42,7 +44,6 @@ class CFX_MemoryStream : public IFX_SeekableStream {
size_t m_nCurSize;
size_t m_nCurPos = 0;
const bool m_bConsecutive;
- const bool m_bTakeOver; // Owns the data in |m_Blocks|.
};
#endif // CORE_FXCRT_CFX_MEMORYSTREAM_H_
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index f173bf24ae..f6b168c89d 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -179,7 +179,8 @@ const FX_FONTDESCRIPTOR* CFGAS_FontMgr::FindFont(const wchar_t* pszFontFamily,
// Use a named object to store the returned value of EnumGdiFonts() instead
// of using a temporary object. This can prevent use-after-free issues since
// pDesc may point to one of std::deque object's elements.
- std::deque<FX_FONTDESCRIPTOR> namedFonts = EnumGdiFonts(pszFontFamily, wUnicode);
+ std::deque<FX_FONTDESCRIPTOR> namedFonts =
+ EnumGdiFonts(pszFontFamily, wUnicode);
params.pwsFamily = nullptr;
pDesc = MatchDefaultFont(&params, namedFonts);
if (!pDesc)
@@ -628,7 +629,7 @@ RetainPtr<IFX_SeekableReadStream> CFGAS_FontMgr::CreateFontStream(
uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1);
dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize);
- return pdfium::MakeRetain<CFX_MemoryStream>(pBuffer, dwFileSize, true);
+ return pdfium::MakeRetain<CFX_MemoryStream>(pBuffer, dwFileSize);
}
RetainPtr<IFX_SeekableReadStream> CFGAS_FontMgr::CreateFontStream(