| 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;
|
| }
|
|
|
|
|