summaryrefslogtreecommitdiff
path: root/core/fxge/ge/cfx_facecache.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-07-10 14:16:05 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-07-10 18:37:08 +0000
commit1437643bfaca635d52f4cb9ec41e3075cf893f79 (patch)
treec3bddd3d8f11d1ac1daa332215a79792448699e8 /core/fxge/ge/cfx_facecache.cpp
parent08c6651ec45b8cf01e6b6bbe8f57b1052554de94 (diff)
downloadpdfium-1437643bfaca635d52f4cb9ec41e3075cf893f79.tar.xz
Reland "typeface double delete"
This reverts commit 75e1ab05e731d99b9acdc86de47640720e848415. Reason for revert: Using the custom skia smart pointer is the correct approach over CFX_UnownedPtr. Original change's description: > Revert "typeface double delete" > > This reverts commit ddf2418ba8e5d925909d7955ac22b33f37ccce44. > > Reason for revert: not right > > Original change's description: > > typeface double delete > > > > SkTypeface was doubly deleted at pdfium teardown > > SkTypeface has two pointers but no owners. > > Making the font cache an owner fixes the bug but > > violates checkdeps rules. Let me know what to > > do about that. > > > > R=​dsinclair@chromium.org,npm@chromium.org > > Bug: 736133 > > Change-Id: I756a41258a5ac86e70139d7a587c5da9bb7a707b > > Reviewed-on: https://pdfium-review.googlesource.com/7270 > > Reviewed-by: Nicolás Peña <npm@chromium.org> > > Commit-Queue: Cary Clark <caryclark@google.com> > > TBR=dsinclair@chromium.org,caryclark@google.com,npm@chromium.org,caryclark@skia.org > > Change-Id: I255f50acf2cbaecc85b8e5ac3893c1fbc77b6492 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: 736133 > Reviewed-on: https://pdfium-review.googlesource.com/7310 > Reviewed-by: Cary Clark <caryclark@google.com> > Commit-Queue: Cary Clark <caryclark@google.com> TBR=dsinclair@chromium.org,caryclark@google.com,npm@chromium.org,caryclark@skia.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 736133 Change-Id: I0ab949e9da2fdab9559e7ffe0ceed24d8eb9b66a Reviewed-on: https://pdfium-review.googlesource.com/7510 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fxge/ge/cfx_facecache.cpp')
-rw-r--r--core/fxge/ge/cfx_facecache.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/core/fxge/ge/cfx_facecache.cpp b/core/fxge/ge/cfx_facecache.cpp
index 6049729089..e675e11510 100644
--- a/core/fxge/ge/cfx_facecache.cpp
+++ b/core/fxge/ge/cfx_facecache.cpp
@@ -89,9 +89,6 @@ CFX_FaceCache::CFX_FaceCache(FXFT_Face face)
}
CFX_FaceCache::~CFX_FaceCache() {
-#if defined _SKIA_SUPPORT_ || _SKIA_SUPPORT_PATHS_
- SkSafeUnref(m_pTypeface.Get());
-#endif
}
std::unique_ptr<CFX_GlyphBitmap> CFX_FaceCache::RenderGlyph(
@@ -358,19 +355,17 @@ const CFX_GlyphBitmap* CFX_FaceCache::LoadGlyphBitmap(const CFX_Font* pFont,
#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_
CFX_TypeFace* CFX_FaceCache::GetDeviceCache(const CFX_Font* pFont) {
if (!m_pTypeface) {
- m_pTypeface =
- SkTypeface::MakeFromStream(
- new SkMemoryStream(pFont->GetFontData(), pFont->GetSize()))
- .release();
+ m_pTypeface = SkTypeface::MakeFromStream(
+ new SkMemoryStream(pFont->GetFontData(), pFont->GetSize()));
}
#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
if (!m_pTypeface) {
sk_sp<SkFontMgr> customMgr(SkFontMgr_New_Custom_Empty());
- m_pTypeface = customMgr->createFromStream(
- new SkMemoryStream(pFont->GetFontData(), pFont->GetSize()));
+ m_pTypeface.reset(customMgr->createFromStream(
+ new SkMemoryStream(pFont->GetFontData(), pFont->GetSize())));
}
#endif
- return m_pTypeface.Get();
+ return m_pTypeface.get();
}
#endif