Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(419)

Unified Diff: core/fpdfapi/fpdf_font/cpdf_cidfont.cpp

Issue 2003833003: Use unique_ptr in CPDF_CidFont (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698