From 33364e2d6f9549d7964611097c663264548a5d68 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Fri, 19 Feb 2016 16:26:53 -0800 Subject: Tidy CFX_FixedBufGrow. Stop short of removing it since it looks like it may be used in some very hot paths. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1719543002 . --- core/include/fxcrt/fx_basic.h | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/core/include/fxcrt/fx_basic.h b/core/include/fxcrt/fx_basic.h index 018a91462e..9b1eaa5bf5 100644 --- a/core/include/fxcrt/fx_basic.h +++ b/core/include/fxcrt/fx_basic.h @@ -576,33 +576,24 @@ class CFX_SegmentedArray : public CFX_BaseSegmentedArray { } }; #endif // PDF_ENABLE_XFA + template class CFX_FixedBufGrow { public: - CFX_FixedBufGrow() : m_pData(NULL) {} - CFX_FixedBufGrow(int data_size) : m_pData(NULL) { - if (data_size > FixedSize) { - m_pData = FX_Alloc(DataType, data_size); - } else { - FXSYS_memset(m_Data, 0, sizeof(DataType) * FixedSize); - } - } - void SetDataSize(int data_size) { - FX_Free(m_pData); - m_pData = NULL; + explicit CFX_FixedBufGrow(int data_size) { if (data_size > FixedSize) { - m_pData = FX_Alloc(DataType, data_size); - } else { - FXSYS_memset(m_Data, 0, sizeof(DataType) * FixedSize); + m_pGrowData.reset(FX_Alloc(DataType, data_size)); + return; } + FXSYS_memset(m_FixedData, 0, sizeof(DataType) * FixedSize); } - ~CFX_FixedBufGrow() { FX_Free(m_pData); } - operator DataType*() { return m_pData ? m_pData : m_Data; } + operator DataType*() { return m_pGrowData ? m_pGrowData.get() : m_FixedData; } private: - DataType m_Data[FixedSize]; - DataType* m_pData; + DataType m_FixedData[FixedSize]; + std::unique_ptr m_pGrowData; }; + #ifdef PDF_ENABLE_XFA class CFX_MapPtrToPtr { protected: -- cgit v1.2.3