summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/fpdfapi/render/cpdf_type3cache.cpp14
-rw-r--r--core/fpdfapi/render/cpdf_type3cache.h3
2 files changed, 8 insertions, 9 deletions
diff --git a/core/fpdfapi/render/cpdf_type3cache.cpp b/core/fpdfapi/render/cpdf_type3cache.cpp
index d11103d014..b7a4cb808f 100644
--- a/core/fpdfapi/render/cpdf_type3cache.cpp
+++ b/core/fpdfapi/render/cpdf_type3cache.cpp
@@ -15,6 +15,7 @@
#include "core/fpdfapi/render/cpdf_type3glyphs.h"
#include "core/fxge/fx_dib.h"
#include "core/fxge/fx_font.h"
+#include "third_party/base/ptr_util.h"
namespace {
@@ -81,11 +82,7 @@ int DetectFirstLastScan(const CFX_RetainPtr<CFX_DIBitmap>& pBitmap,
CPDF_Type3Cache::CPDF_Type3Cache(CPDF_Type3Font* pFont) : m_pFont(pFont) {}
-CPDF_Type3Cache::~CPDF_Type3Cache() {
- for (const auto& pair : m_SizeMap)
- delete pair.second;
- m_SizeMap.clear();
-}
+CPDF_Type3Cache::~CPDF_Type3Cache() {}
CFX_GlyphBitmap* CPDF_Type3Cache::LoadGlyph(uint32_t charcode,
const CFX_Matrix* pMatrix,
@@ -99,10 +96,11 @@ CFX_GlyphBitmap* CPDF_Type3Cache::LoadGlyph(uint32_t charcode,
CPDF_Type3Glyphs* pSizeCache;
auto it = m_SizeMap.find(FaceGlyphsKey);
if (it == m_SizeMap.end()) {
- pSizeCache = new CPDF_Type3Glyphs;
- m_SizeMap[FaceGlyphsKey] = pSizeCache;
+ auto pNew = pdfium::MakeUnique<CPDF_Type3Glyphs>();
+ pSizeCache = pNew.get();
+ m_SizeMap[FaceGlyphsKey] = std::move(pNew);
} else {
- pSizeCache = it->second;
+ pSizeCache = it->second.get();
}
auto it2 = pSizeCache->m_GlyphMap.find(charcode);
if (it2 != pSizeCache->m_GlyphMap.end())
diff --git a/core/fpdfapi/render/cpdf_type3cache.h b/core/fpdfapi/render/cpdf_type3cache.h
index 0b3cdcbfa4..dc3e91b359 100644
--- a/core/fpdfapi/render/cpdf_type3cache.h
+++ b/core/fpdfapi/render/cpdf_type3cache.h
@@ -8,6 +8,7 @@
#define CORE_FPDFAPI_RENDER_CPDF_TYPE3CACHE_H_
#include <map>
+#include <memory>
#include "core/fpdfapi/font/cpdf_type3font.h"
#include "core/fxcrt/cfx_retain_ptr.h"
@@ -38,7 +39,7 @@ class CPDF_Type3Cache : public CFX_Retainable {
float retinaScaleY);
CPDF_Type3Font* const m_pFont;
- std::map<CFX_ByteString, CPDF_Type3Glyphs*> m_SizeMap;
+ std::map<CFX_ByteString, std::unique_ptr<CPDF_Type3Glyphs>> m_SizeMap;
};
#endif // CORE_FPDFAPI_RENDER_CPDF_TYPE3CACHE_H_