| Index: xfa/fgas/font/fgas_gefont.cpp
|
| diff --git a/xfa/fgas/font/fgas_gefont.cpp b/xfa/fgas/font/fgas_gefont.cpp
|
| index 48635cabf7b324c5f018b8f9cd57521349305e28..7492de246b749b653b46ff1929a9fd6f41c3dbe5 100644
|
| --- a/xfa/fgas/font/fgas_gefont.cpp
|
| +++ b/xfa/fgas/font/fgas_gefont.cpp
|
| @@ -77,12 +77,6 @@ CFGAS_GEFont::CFGAS_GEFont(IFGAS_FontMgr* pFontMgr)
|
| m_pFontMgr(pFontMgr),
|
| m_iRefCount(1),
|
| m_bExtFont(FALSE),
|
| - m_pStream(nullptr),
|
| - m_pFileRead(nullptr),
|
| - m_pFontEncoding(nullptr),
|
| - m_pCharWidthMap(nullptr),
|
| - m_pRectArray(nullptr),
|
| - m_pBBoxMap(nullptr),
|
| m_pProvider(nullptr) {
|
| }
|
|
|
| @@ -96,12 +90,6 @@ CFGAS_GEFont::CFGAS_GEFont(const CFGAS_GEFont& src, uint32_t dwFontStyles)
|
| m_pFontMgr(src.m_pFontMgr),
|
| m_iRefCount(1),
|
| m_bExtFont(FALSE),
|
| - m_pStream(nullptr),
|
| - m_pFileRead(nullptr),
|
| - m_pFontEncoding(nullptr),
|
| - m_pCharWidthMap(nullptr),
|
| - m_pRectArray(nullptr),
|
| - m_pBBoxMap(nullptr),
|
| m_pProvider(nullptr) {
|
| ASSERT(src.m_pFont);
|
| m_pFont = new CFX_Font;
|
| @@ -125,16 +113,7 @@ CFGAS_GEFont::~CFGAS_GEFont() {
|
|
|
| m_SubstFonts.RemoveAll();
|
| m_FontMapper.clear();
|
| - if (m_pFileRead)
|
| - m_pFileRead->Release();
|
|
|
| - if (m_pStream)
|
| - m_pStream->Release();
|
| -
|
| - delete m_pFontEncoding;
|
| - delete m_pCharWidthMap;
|
| - delete m_pRectArray;
|
| - delete m_pBBoxMap;
|
| if (!m_bExtFont)
|
| delete m_pFont;
|
| }
|
| @@ -213,22 +192,17 @@ FX_BOOL CFGAS_GEFont::LoadFontInternal(const uint8_t* pBuffer, int32_t length) {
|
|
|
| FX_BOOL CFGAS_GEFont::LoadFontInternal(IFX_Stream* pFontStream,
|
| FX_BOOL bSaveStream) {
|
| - if (m_pFont || m_pFileRead || !pFontStream || pFontStream->GetLength() < 1) {
|
| + if (m_pFont || m_pFileRead || !pFontStream || pFontStream->GetLength() < 1)
|
| return FALSE;
|
| - }
|
| - if (bSaveStream) {
|
| - m_pStream = pFontStream;
|
| - }
|
| - m_pFileRead = FX_CreateFileRead(pFontStream, FALSE);
|
| + if (bSaveStream)
|
| + m_pStream.reset(pFontStream);
|
| +
|
| + m_pFileRead.reset(FX_CreateFileRead(pFontStream, FALSE));
|
| m_pFont = new CFX_Font;
|
| - FX_BOOL bRet = m_pFont->LoadFile(m_pFileRead);
|
| - if (bRet) {
|
| - bRet = InitFont();
|
| - } else {
|
| - m_pFileRead->Release();
|
| - m_pFileRead = nullptr;
|
| - }
|
| - return bRet;
|
| + if (m_pFont->LoadFile(m_pFileRead.get()))
|
| + return InitFont();
|
| + m_pFileRead.reset();
|
| + return FALSE;
|
| }
|
| #endif // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
|
|
|
| @@ -245,16 +219,16 @@ FX_BOOL CFGAS_GEFont::InitFont() {
|
| if (!m_pFont)
|
| return FALSE;
|
| if (!m_pFontEncoding) {
|
| - m_pFontEncoding = FX_CreateFontEncodingEx(m_pFont);
|
| + m_pFontEncoding.reset(FX_CreateFontEncodingEx(m_pFont));
|
| if (!m_pFontEncoding)
|
| return FALSE;
|
| }
|
| if (!m_pCharWidthMap)
|
| - m_pCharWidthMap = new CFX_DiscreteArrayTemplate<uint16_t>(1024);
|
| + m_pCharWidthMap.reset(new CFX_DiscreteArrayTemplate<uint16_t>(1024));
|
| if (!m_pRectArray)
|
| - m_pRectArray = new CFX_MassArrayTemplate<CFX_Rect>(16);
|
| + m_pRectArray.reset(new CFX_MassArrayTemplate<CFX_Rect>(16));
|
| if (!m_pBBoxMap)
|
| - m_pBBoxMap = new CFX_MapPtrToPtr(16);
|
| + m_pBBoxMap.reset(new CFX_MapPtrToPtr(16));
|
|
|
| return TRUE;
|
| }
|
|
|