summaryrefslogtreecommitdiff
path: root/core/fpdfapi/fpdf_font/cpdf_type3font.cpp
diff options
context:
space:
mode:
authorweili <weili@chromium.org>2016-07-25 07:40:27 -0700
committerCommit bot <commit-bot@chromium.org>2016-07-25 07:40:27 -0700
commit9b671ace8aec906683b05399cf8a2882ed8ef7b6 (patch)
treeca6193f08a18ffe917301fd523c6c668becb7bdb /core/fpdfapi/fpdf_font/cpdf_type3font.cpp
parentd780735def22c4c2ec3a0cc89856c86486c25494 (diff)
downloadpdfium-9b671ace8aec906683b05399cf8a2882ed8ef7b6.tar.xz
Use smart pointers for CFX_Font and CFX_Type3Font classes
For the class owned member variables, use std::unique_ptr or std::vector for memory management. BUG=pdfium:518 Review-Url: https://codereview.chromium.org/2169793002
Diffstat (limited to 'core/fpdfapi/fpdf_font/cpdf_type3font.cpp')
-rw-r--r--core/fpdfapi/fpdf_font/cpdf_type3font.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/core/fpdfapi/fpdf_font/cpdf_type3font.cpp b/core/fpdfapi/fpdf_font/cpdf_type3font.cpp
index 6c339ea5a7..8e4ac56884 100644
--- a/core/fpdfapi/fpdf_font/cpdf_type3font.cpp
+++ b/core/fpdfapi/fpdf_font/cpdf_type3font.cpp
@@ -21,10 +21,7 @@ CPDF_Type3Font::CPDF_Type3Font()
FXSYS_memset(m_CharWidthL, 0, sizeof(m_CharWidthL));
}
-CPDF_Type3Font::~CPDF_Type3Font() {
- for (auto it : m_CacheMap)
- delete it.second;
-}
+CPDF_Type3Font::~CPDF_Type3Font() {}
bool CPDF_Type3Font::IsType3Font() const {
return true;
@@ -94,7 +91,7 @@ CPDF_Type3Char* CPDF_Type3Font::LoadChar(uint32_t charcode, int level) {
auto it = m_CacheMap.find(charcode);
if (it != m_CacheMap.end())
- return it->second;
+ return it->second.get();
const FX_CHAR* name =
GetAdobeCharName(m_BaseEncoding, m_pCharNames, charcode);
@@ -116,7 +113,7 @@ CPDF_Type3Char* CPDF_Type3Font::LoadChar(uint32_t charcode, int level) {
pNewChar->m_pForm->ParseContent(nullptr, nullptr, pNewChar.get(), level + 1);
it = m_CacheMap.find(charcode);
if (it != m_CacheMap.end())
- return it->second;
+ return it->second.get();
FX_FLOAT scale = m_FontMatrix.GetXUnit();
pNewChar->m_Width = (int32_t)(pNewChar->m_Width * scale + 0.5f);
@@ -134,8 +131,8 @@ CPDF_Type3Char* CPDF_Type3Font::LoadChar(uint32_t charcode, int level) {
rcBBox.bottom = FXSYS_round(char_rect.bottom * 1000);
ASSERT(!pdfium::ContainsKey(m_CacheMap, charcode));
- CPDF_Type3Char* pCachedChar = pNewChar.release();
- m_CacheMap[charcode] = pCachedChar;
+ m_CacheMap[charcode] = std::move(pNewChar);
+ CPDF_Type3Char* pCachedChar = m_CacheMap[charcode].get();
if (pCachedChar->m_pForm->GetPageObjectList()->empty())
pCachedChar->m_pForm.reset();
return pCachedChar;