diff options
author | Lei Zhang <thestig@chromium.org> | 2018-08-20 17:01:06 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-08-20 17:01:06 +0000 |
commit | 5b10a4c713fbc831cc7bed16936b44ff65fd68b1 (patch) | |
tree | a0e7d9c3ade6ec0318b5464cfcd14aefef23b3a1 /core/fxge/android/cfpf_skiafontmgr.cpp | |
parent | 032b3bed2b1888f1226e1d940fe41e9a09d2336c (diff) | |
download | pdfium-5b10a4c713fbc831cc7bed16936b44ff65fd68b1.tar.xz |
Remove refcounting from CFPF_SkiaFont.chromium/3529
The refcounting is useless, since CFPF_SkiaFontMgr always has a
reference to the fonts anyway. Just make CFPF_SkiaFontMgr own the fonts,
like on other platforms.
Change-Id: Ifadb5c4e09f151ada4a0a68e0588166c2f2974d4
Reviewed-on: https://pdfium-review.googlesource.com/40610
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fxge/android/cfpf_skiafontmgr.cpp')
-rw-r--r-- | core/fxge/android/cfpf_skiafontmgr.cpp | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/core/fxge/android/cfpf_skiafontmgr.cpp b/core/fxge/android/cfpf_skiafontmgr.cpp index cd6aab1f2d..f9afdabb93 100644 --- a/core/fxge/android/cfpf_skiafontmgr.cpp +++ b/core/fxge/android/cfpf_skiafontmgr.cpp @@ -7,6 +7,7 @@ #include "core/fxge/android/cfpf_skiafontmgr.h" #include <algorithm> +#include <utility> #include "core/fxcrt/fx_codepage.h" #include "core/fxcrt/fx_extension.h" @@ -228,9 +229,6 @@ uint32_t FPF_SkiaGetFaceCharset(TT_OS2* pOS2) { CFPF_SkiaFontMgr::CFPF_SkiaFontMgr() = default; CFPF_SkiaFontMgr::~CFPF_SkiaFontMgr() { - for (const auto& pair : m_FamilyFonts) - pair.second->Release(); - m_FamilyFonts.clear(); m_FontFaces.clear(); if (m_FTLibrary) @@ -256,7 +254,7 @@ CFPF_SkiaFont* CFPF_SkiaFontMgr::CreateFont(const ByteStringView& bsFamilyname, uint32_t dwHash = FPF_SKIAGetFamilyHash(bsFamilyname, dwStyle, uCharset); auto it = m_FamilyFonts.find(dwHash); if (it != m_FamilyFonts.end()) - return it->second->Retain(); + return it->second.get(); uint32_t dwFaceName = FPF_SKIANormalizeFontName(bsFamilyname); uint32_t dwSubst = FPF_SkiaGetSubstFont(dwFaceName, g_SkiaFontmap, @@ -319,17 +317,17 @@ CFPF_SkiaFont* CFPF_SkiaFontMgr::CreateFont(const ByteStringView& bsFamilyname, break; } } - if (pBestFont) { - CFPF_SkiaFont* pFont = - new CFPF_SkiaFont(this, pBestFont, dwStyle, uCharset); - pFont->Retain(); - if (pFont->IsValid()) { - m_FamilyFonts[dwHash] = pFont; - return pFont; - } - pFont->Release(); - } - return nullptr; + if (!pBestFont) + return nullptr; + + auto pFont = + pdfium::MakeUnique<CFPF_SkiaFont>(this, pBestFont, dwStyle, uCharset); + if (!pFont->IsValid()) + return nullptr; + + CFPF_SkiaFont* pRet = pFont.get(); + m_FamilyFonts[dwHash] = std::move(pFont); + return pRet; } FXFT_Face CFPF_SkiaFontMgr::GetFontFace(const ByteStringView& bsFile, |