summaryrefslogtreecommitdiff
path: root/core/fxge
diff options
context:
space:
mode:
Diffstat (limited to 'core/fxge')
-rw-r--r--core/fxge/cfx_unicodeencodingex.h4
-rw-r--r--core/fxge/ge/cfx_facecache.cpp5
-rw-r--r--core/fxge/ge/cfx_fontcache.cpp6
-rw-r--r--core/fxge/ge/cfx_unicodeencodingex.cpp17
-rw-r--r--core/fxge/ge/fx_ge_linux.cpp6
5 files changed, 24 insertions, 14 deletions
diff --git a/core/fxge/cfx_unicodeencodingex.h b/core/fxge/cfx_unicodeencodingex.h
index 21deb44d79..e62410a122 100644
--- a/core/fxge/cfx_unicodeencodingex.h
+++ b/core/fxge/cfx_unicodeencodingex.h
@@ -30,8 +30,8 @@ class CFX_UnicodeEncodingEx : public CFX_UnicodeEncoding {
uint32_t m_nEncodingID;
};
-CFX_UnicodeEncodingEx* FX_CreateFontEncodingEx(
+std::unique_ptr<CFX_UnicodeEncodingEx> FX_CreateFontEncodingEx(
CFX_Font* pFont,
- uint32_t nEncodingID = FXFM_ENCODING_NONE);
+ uint32_t nEncodingID);
#endif // CORE_FXGE_CFX_UNICODEENCODINGEX_H_
diff --git a/core/fxge/ge/cfx_facecache.cpp b/core/fxge/ge/cfx_facecache.cpp
index 0969cdf10c..5ad7bdd99a 100644
--- a/core/fxge/ge/cfx_facecache.cpp
+++ b/core/fxge/ge/cfx_facecache.cpp
@@ -396,8 +396,9 @@ CFX_GlyphBitmap* CFX_FaceCache::LookUpGlyphBitmap(
CFX_SizeGlyphCache* pSizeCache;
auto it = m_SizeMap.find(FaceGlyphsKey);
if (it == m_SizeMap.end()) {
- pSizeCache = new CFX_SizeGlyphCache;
- m_SizeMap[FaceGlyphsKey] = std::unique_ptr<CFX_SizeGlyphCache>(pSizeCache);
+ auto pNewCache = pdfium::MakeUnique<CFX_SizeGlyphCache>();
+ pSizeCache = pNewCache.get();
+ m_SizeMap[FaceGlyphsKey] = std::move(pNewCache);
} else {
pSizeCache = it->second.get();
}
diff --git a/core/fxge/ge/cfx_fontcache.cpp b/core/fxge/ge/cfx_fontcache.cpp
index 1599c30b93..5ccac8cfbc 100644
--- a/core/fxge/ge/cfx_fontcache.cpp
+++ b/core/fxge/ge/cfx_fontcache.cpp
@@ -38,8 +38,10 @@ CFX_FaceCache* CFX_FontCache::GetCachedFace(const CFX_Font* pFont) {
auto counted_face_cache = pdfium::MakeUnique<CountedFaceCache>();
counted_face_cache->m_nCount = 2;
- CFX_FaceCache* face_cache = new CFX_FaceCache(bExternal ? nullptr : face);
- counted_face_cache->m_Obj.reset(face_cache);
+ auto new_cache =
+ pdfium::MakeUnique<CFX_FaceCache>(bExternal ? nullptr : face);
+ CFX_FaceCache* face_cache = new_cache.get();
+ counted_face_cache->m_Obj = std::move(new_cache);
map[face] = std::move(counted_face_cache);
return face_cache;
}
diff --git a/core/fxge/ge/cfx_unicodeencodingex.cpp b/core/fxge/ge/cfx_unicodeencodingex.cpp
index cd7625fb17..3f28d4295e 100644
--- a/core/fxge/ge/cfx_unicodeencodingex.cpp
+++ b/core/fxge/ge/cfx_unicodeencodingex.cpp
@@ -6,9 +6,12 @@
#include "core/fxge/cfx_unicodeencodingex.h"
+#include <memory>
+
#include "core/fpdfapi/font/cpdf_font.h"
#include "core/fxge/fx_font.h"
#include "core/fxge/fx_freetype.h"
+#include "third_party/base/ptr_util.h"
namespace {
@@ -22,11 +25,12 @@ const uint32_t g_EncodingID[] = {
FXFM_ENCODING_APPLE_ROMAN,
};
-CFX_UnicodeEncodingEx* FXFM_CreateFontEncoding(CFX_Font* pFont,
- uint32_t nEncodingID) {
+std::unique_ptr<CFX_UnicodeEncodingEx> FXFM_CreateFontEncoding(
+ CFX_Font* pFont,
+ uint32_t nEncodingID) {
if (FXFT_Select_Charmap(pFont->GetFace(), nEncodingID))
return nullptr;
- return new CFX_UnicodeEncodingEx(pFont, nEncodingID);
+ return pdfium::MakeUnique<CFX_UnicodeEncodingEx>(pFont, nEncodingID);
}
} // namespace
@@ -80,8 +84,9 @@ uint32_t CFX_UnicodeEncodingEx::CharCodeFromUnicode(wchar_t Unicode) const {
return CPDF_Font::kInvalidCharCode;
}
-CFX_UnicodeEncodingEx* FX_CreateFontEncodingEx(CFX_Font* pFont,
- uint32_t nEncodingID) {
+std::unique_ptr<CFX_UnicodeEncodingEx> FX_CreateFontEncodingEx(
+ CFX_Font* pFont,
+ uint32_t nEncodingID) {
if (!pFont || !pFont->GetFace())
return nullptr;
@@ -89,7 +94,7 @@ CFX_UnicodeEncodingEx* FX_CreateFontEncodingEx(CFX_Font* pFont,
return FXFM_CreateFontEncoding(pFont, nEncodingID);
for (size_t i = 0; i < FX_ArraySize(g_EncodingID); ++i) {
- CFX_UnicodeEncodingEx* pFontEncoding =
+ std::unique_ptr<CFX_UnicodeEncodingEx> pFontEncoding =
FXFM_CreateFontEncoding(pFont, g_EncodingID[i]);
if (pFontEncoding)
return pFontEncoding;
diff --git a/core/fxge/ge/fx_ge_linux.cpp b/core/fxge/ge/fx_ge_linux.cpp
index b216e12127..4e4b2050e9 100644
--- a/core/fxge/ge/fx_ge_linux.cpp
+++ b/core/fxge/ge/fx_ge_linux.cpp
@@ -5,11 +5,13 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#include <memory>
+#include <utility>
#include "core/fxcrt/fx_codepage.h"
#include "core/fxge/cfx_gemodule.h"
#include "core/fxge/ge/cfx_folderfontinfo.h"
#include "core/fxge/ifx_systemfontinfo.h"
+#include "third_party/base/ptr_util.h"
#if _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_
namespace {
@@ -145,14 +147,14 @@ bool CFX_LinuxFontInfo::ParseFontCfg(const char** pUserPaths) {
std::unique_ptr<IFX_SystemFontInfo> IFX_SystemFontInfo::CreateDefault(
const char** pUserPaths) {
- CFX_LinuxFontInfo* pInfo = new CFX_LinuxFontInfo;
+ auto pInfo = pdfium::MakeUnique<CFX_LinuxFontInfo>();
if (!pInfo->ParseFontCfg(pUserPaths)) {
pInfo->AddPath("/usr/share/fonts");
pInfo->AddPath("/usr/share/X11/fonts/Type1");
pInfo->AddPath("/usr/share/X11/fonts/TTF");
pInfo->AddPath("/usr/local/share/fonts");
}
- return std::unique_ptr<IFX_SystemFontInfo>(pInfo);
+ return std::move(pInfo);
}
void CFX_GEModule::InitPlatform() {