From 9a9a7b29e5e5916a7b6453cd124ca437f14b9da4 Mon Sep 17 00:00:00 2001 From: scroggo Date: Thu, 12 May 2016 06:22:30 -0700 Subject: Revert of Move SkTypeface to sk_sp. (patchset #5 id:80001 of https://codereview.chromium.org/1933393002/ ) Reason for revert: fontmgr_iterAndroid failing to draw emoji. E.g. https://gold.skia.org/search2?blame=6296da736fbf40aae881650c239420f64e576c3f&unt=true&head=true&query=source_type%3Dgm Original issue's description: > Move SkTypeface to sk_sp. > > Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f TBR=reed@google.com,fmalita@chromium.org,tomhudson@google.com,bungeman@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1974783002 --- src/fonts/SkGScalerContext.cpp | 11 +++++++---- src/fonts/SkGScalerContext.h | 9 +++++---- src/fonts/SkRandomScalerContext.cpp | 8 ++++++-- src/fonts/SkRandomScalerContext.h | 11 ++++++----- 4 files changed, 24 insertions(+), 15 deletions(-) (limited to 'src/fonts') diff --git a/src/fonts/SkGScalerContext.cpp b/src/fonts/SkGScalerContext.cpp index 1d34536cbe..0a9601bd7e 100644 --- a/src/fonts/SkGScalerContext.cpp +++ b/src/fonts/SkGScalerContext.cpp @@ -151,11 +151,14 @@ void SkGScalerContext::generateFontMetrics(SkPaint::FontMetrics* metrics) { #include "SkTypefaceCache.h" -SkGTypeface::SkGTypeface(sk_sp proxy, const SkPaint& paint) +SkGTypeface::SkGTypeface(SkTypeface* proxy, const SkPaint& paint) : SkTypeface(proxy->fontStyle(), SkTypefaceCache::NewFontID(), false) - , fProxy(std::move(proxy)) - , fPaint(paint) -{} + , fProxy(SkRef(proxy)) + , fPaint(paint) {} + +SkGTypeface::~SkGTypeface() { + fProxy->unref(); +} SkScalerContext* SkGTypeface::onCreateScalerContext(const SkScalerContextEffects& effects, const SkDescriptor* desc) const { diff --git a/src/fonts/SkGScalerContext.h b/src/fonts/SkGScalerContext.h index 3eb25a81da..69d02ddf11 100644 --- a/src/fonts/SkGScalerContext.h +++ b/src/fonts/SkGScalerContext.h @@ -13,9 +13,10 @@ class SkGTypeface : public SkTypeface { public: - SkGTypeface(sk_sp proxy, const SkPaint&); + SkGTypeface(SkTypeface* proxy, const SkPaint&); + virtual ~SkGTypeface(); - SkTypeface* proxy() const { return fProxy.get(); } + SkTypeface* proxy() const { return fProxy; } const SkPaint& paint() const { return fPaint; } protected: @@ -42,8 +43,8 @@ protected: size_t length, void* data) const override; private: - sk_sp fProxy; - SkPaint fPaint; + SkTypeface* fProxy; + SkPaint fPaint; }; #endif diff --git a/src/fonts/SkRandomScalerContext.cpp b/src/fonts/SkRandomScalerContext.cpp index 6d3718cbef..245052053e 100644 --- a/src/fonts/SkRandomScalerContext.cpp +++ b/src/fonts/SkRandomScalerContext.cpp @@ -190,12 +190,16 @@ void SkRandomScalerContext::generateFontMetrics(SkPaint::FontMetrics* metrics) { #include "SkTypefaceCache.h" -SkRandomTypeface::SkRandomTypeface(sk_sp proxy, const SkPaint& paint, bool fakeIt) +SkRandomTypeface::SkRandomTypeface(SkTypeface* proxy, const SkPaint& paint, bool fakeIt) : SkTypeface(proxy->fontStyle(), SkTypefaceCache::NewFontID(), false) - , fProxy(std::move(proxy)) + , fProxy(SkRef(proxy)) , fPaint(paint) , fFakeIt(fakeIt) {} +SkRandomTypeface::~SkRandomTypeface() { + fProxy->unref(); +} + SkScalerContext* SkRandomTypeface::onCreateScalerContext(const SkScalerContextEffects& effects, const SkDescriptor* desc) const { return new SkRandomScalerContext(const_cast(this), effects, desc, fFakeIt); diff --git a/src/fonts/SkRandomScalerContext.h b/src/fonts/SkRandomScalerContext.h index 076689d93a..0e08f4b1ae 100644 --- a/src/fonts/SkRandomScalerContext.h +++ b/src/fonts/SkRandomScalerContext.h @@ -18,9 +18,10 @@ class SkRandomTypeface : public SkTypeface { public: - SkRandomTypeface(sk_sp proxy, const SkPaint&, bool fakeit); + SkRandomTypeface(SkTypeface* proxy, const SkPaint&, bool fakeit); + virtual ~SkRandomTypeface(); - SkTypeface* proxy() const { return fProxy.get(); } + SkTypeface* proxy() const { return fProxy; } const SkPaint& paint() const { return fPaint; } protected: @@ -47,9 +48,9 @@ protected: size_t length, void* data) const override; private: - sk_sp fProxy; - SkPaint fPaint; - bool fFakeIt; + SkTypeface* fProxy; + SkPaint fPaint; + bool fFakeIt; }; #endif -- cgit v1.2.3