Index: core/fpdfapi/fpdf_font/cpdf_cidfont.cpp |
diff --git a/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp b/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp |
index f5405b197f10c31c147cb132753a7c9178119933..d2e7c2110250bd719a54fff59e470f4bdd906852 100644 |
--- a/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp |
+++ b/core/fpdfapi/fpdf_font/cpdf_cidfont.cpp |
@@ -205,22 +205,11 @@ int CompareCIDTransform(const void* key, const void* element) { |
CPDF_CIDFont::CPDF_CIDFont() |
: m_pCMap(nullptr), |
- m_pAllocatedCMap(nullptr), |
m_pCID2UnicodeMap(nullptr), |
- m_pCIDToGIDMap(nullptr), |
m_bCIDIsGID(FALSE), |
- m_pAnsiWidths(nullptr), |
- m_bAdobeCourierStd(FALSE), |
- m_pTTGSUBTable(nullptr) {} |
+ m_bAdobeCourierStd(FALSE) {} |
-CPDF_CIDFont::~CPDF_CIDFont() { |
- if (m_pAnsiWidths) { |
- FX_Free(m_pAnsiWidths); |
- } |
- delete m_pAllocatedCMap; |
- delete m_pCIDToGIDMap; |
- delete m_pTTGSUBTable; |
-} |
+CPDF_CIDFont::~CPDF_CIDFont() {} |
bool CPDF_CIDFont::IsCIDFont() const { |
return true; |
@@ -388,7 +377,8 @@ FX_BOOL CPDF_CIDFont::Load() { |
->GetFontGlobals() |
->m_CMapManager.GetPredefinedCMap(cmap, m_pFontFile && m_bType1); |
} else if (CPDF_Stream* pStream = pEncoding->AsStream()) { |
- m_pAllocatedCMap = m_pCMap = new CPDF_CMap; |
+ m_pCMap = new CPDF_CMap; |
+ m_pAllocatedCMap.reset(m_pCMap); |
CPDF_StreamAcc acc; |
acc.LoadAllData(pStream, FALSE); |
m_pCMap->LoadEmbedded(acc.GetData(), acc.GetSize()); |
@@ -435,7 +425,7 @@ FX_BOOL CPDF_CIDFont::Load() { |
CPDF_Object* pmap = pCIDFontDict->GetDirectObjectBy("CIDToGIDMap"); |
if (pmap) { |
if (CPDF_Stream* pStream = pmap->AsStream()) { |
- m_pCIDToGIDMap = new CPDF_StreamAcc; |
+ m_pCIDToGIDMap.reset(new CPDF_StreamAcc); |
m_pCIDToGIDMap->LoadAllData(pStream, FALSE); |
} else if (pmap->GetString() == "Identity") { |
#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ |
@@ -541,7 +531,7 @@ FX_RECT CPDF_CIDFont::GetCharBBox(uint32_t charcode, int level) { |
} |
int CPDF_CIDFont::GetCharWidthF(uint32_t charcode, int level) { |
if (m_pAnsiWidths && charcode < 0x80) { |
- return m_pAnsiWidths[charcode]; |
+ return m_pAnsiWidths.get()[charcode]; |
} |
uint16_t cid = CIDFromCharCode(charcode); |
int size = m_WidthList.GetSize(); |
@@ -620,7 +610,7 @@ int CPDF_CIDFont::GetGlyphIndex(uint32_t unicode, FX_BOOL* pVertGlyph) { |
int error = FXFT_Load_Sfnt_Table(face, FT_MAKE_TAG('G', 'S', 'U', 'B'), 0, |
m_Font.GetSubData(), NULL); |
if (!error && m_Font.GetSubData()) { |
- m_pTTGSUBTable = new CFX_CTTGSUBTable; |
+ m_pTTGSUBTable.reset(new CFX_CTTGSUBTable); |
m_pTTGSUBTable->LoadGSUBTable((FT_Bytes)m_Font.GetSubData()); |
uint32_t vindex = 0; |
m_pTTGSUBTable->GetVerticalGlyph(index, &vindex); |
@@ -884,15 +874,15 @@ FX_BOOL CPDF_CIDFont::LoadGB2312() { |
->GetPageModule() |
->GetFontGlobals() |
->m_CMapManager.GetCID2UnicodeMap(m_Charset, FALSE); |
- if (!IsEmbedded()) { |
+ if (!IsEmbedded()) |
LoadSubstFont(); |
- } |
+ |
CheckFontMetrics(); |
m_DefaultWidth = 1000; |
- m_pAnsiWidths = FX_Alloc(uint16_t, 128); |
- for (int i = 32; i < 127; i++) { |
- m_pAnsiWidths[i] = 500; |
- } |
+ m_pAnsiWidths.reset(FX_Alloc(uint16_t, 128)); |
+ for (int i = 32; i < 127; i++) |
+ m_pAnsiWidths.get()[i] = 500; |
+ |
return TRUE; |
} |