Index: core/fpdfapi/fpdf_font/cpdf_type3font.cpp |
diff --git a/core/fpdfapi/fpdf_font/cpdf_type3font.cpp b/core/fpdfapi/fpdf_font/cpdf_type3font.cpp |
index 6c339ea5a723bfb3dd65c9e6309a3f0c151aba94..8e4ac568846fa051a42f86404b3e3f25388e80b6 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; |