From 06ca8ec87cf6fab57cadd043a5ac18c4154a4129 Mon Sep 17 00:00:00 2001 From: bungeman Date: Thu, 9 Jun 2016 08:01:03 -0700 Subject: sk_sp for Ganesh. Convert use of GrFragmentProcessor, GrGeometryProcessor, and GrXPFactory to sk_sp. This clarifies ownership and should reduce reference count churn by moving ownership. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2041113004 Review-Url: https://codereview.chromium.org/2041113004 --- tools/debugger/SkOverdrawMode.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'tools/debugger') diff --git a/tools/debugger/SkOverdrawMode.cpp b/tools/debugger/SkOverdrawMode.cpp index bbf61cc76b..58b47edc8c 100644 --- a/tools/debugger/SkOverdrawMode.cpp +++ b/tools/debugger/SkOverdrawMode.cpp @@ -26,8 +26,8 @@ class GLOverdrawFP; class GrOverdrawFP : public GrFragmentProcessor { public: - static const GrFragmentProcessor* Create(const GrFragmentProcessor* dst) { - return new GrOverdrawFP(dst); + static sk_sp Make(sk_sp dst) { + return sk_sp(new GrOverdrawFP(std::move(dst))); } ~GrOverdrawFP() override { } @@ -50,11 +50,11 @@ private: inout->setToUnknown(GrInvariantOutput::kWill_ReadInput); } - GrOverdrawFP(const GrFragmentProcessor* dst) { + GrOverdrawFP(sk_sp dst) { this->initClassID(); SkASSERT(dst); - SkDEBUGCODE(int dstIndex = )this->registerChildProcessor(dst); + SkDEBUGCODE(int dstIndex = )this->registerChildProcessor(std::move(dst)); SkASSERT(0 == dstIndex); } @@ -129,9 +129,8 @@ void GrOverdrawFP::onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyB GLOverdrawFP::GenKey(*this, caps, b); } -const GrFragmentProcessor* GrOverdrawFP::TestCreate(GrProcessorTestData* d) { - SkAutoTUnref dst(GrProcessorUnitTest::CreateChildFP(d)); - return new GrOverdrawFP(dst); +sk_sp GrOverdrawFP::TestCreate(GrProcessorTestData* d) { + return GrOverdrawFP::Make(GrProcessorUnitTest::MakeChildFP(d)); } GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrOverdrawFP); @@ -209,7 +208,7 @@ GrGLSLXferProcessor* OverdrawXP::createGLSLInstance() const { return new GLOverd /////////////////////////////////////////////////////////////////////////////// class GrOverdrawXPFactory : public GrXPFactory { public: - static GrXPFactory* Create() { return new GrOverdrawXPFactory(); } + static sk_sp Make() { return sk_sp(new GrOverdrawXPFactory()); } void getInvariantBlendedColor(const GrProcOptInfo& colorPOI, GrXPFactory::InvariantBlendedColor* blendedColor) const override { @@ -242,8 +241,8 @@ private: GR_DEFINE_XP_FACTORY_TEST(GrOverdrawXPFactory); -const GrXPFactory* GrOverdrawXPFactory::TestCreate(GrProcessorTestData* d) { - return GrOverdrawXPFactory::Create(); +sk_sp GrOverdrawXPFactory::TestCreate(GrProcessorTestData* d) { + return GrOverdrawXPFactory::Make(); } #endif @@ -289,13 +288,13 @@ public: SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkOverdrawXfermode) #if SK_SUPPORT_GPU - const GrFragmentProcessor* getFragmentProcessorForImageFilter( - const GrFragmentProcessor* dst) const override { - return GrOverdrawFP::Create(dst); + sk_sp makeFragmentProcessorForImageFilter( + sk_sp dst) const override { + return GrOverdrawFP::Make(dst); } - GrXPFactory* asXPFactory() const override { - return GrOverdrawXPFactory::Create(); + sk_sp asXPFactory() const override { + return GrOverdrawXPFactory::Make(); } #endif -- cgit v1.2.3