diff options
author | 2016-06-09 08:01:03 -0700 | |
---|---|---|
committer | 2016-06-09 08:01:03 -0700 | |
commit | 06ca8ec87cf6fab57cadd043a5ac18c4154a4129 (patch) | |
tree | 95e7eaaaf3f42ce550332277c431e3ec119446f4 /src/gpu/GrPipelineBuilder.cpp | |
parent | 897a8e38879643d81a64d2bb6bed4e22af982aa4 (diff) |
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
Diffstat (limited to 'src/gpu/GrPipelineBuilder.cpp')
-rw-r--r-- | src/gpu/GrPipelineBuilder.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/gpu/GrPipelineBuilder.cpp b/src/gpu/GrPipelineBuilder.cpp index f7848ba9d6..e142de25a3 100644 --- a/src/gpu/GrPipelineBuilder.cpp +++ b/src/gpu/GrPipelineBuilder.cpp @@ -27,11 +27,11 @@ GrPipelineBuilder::GrPipelineBuilder(const GrPaint& paint, bool useHWAA) SkDEBUGCODE(fBlockEffectRemovalCnt = 0;) for (int i = 0; i < paint.numColorFragmentProcessors(); ++i) { - fColorFragmentProcessors.push_back(SkRef(paint.getColorFragmentProcessor(i))); + fColorFragmentProcessors.emplace_back(SkRef(paint.getColorFragmentProcessor(i))); } for (int i = 0; i < paint.numCoverageFragmentProcessors(); ++i) { - fCoverageFragmentProcessors.push_back(SkRef(paint.getCoverageFragmentProcessor(i))); + fCoverageFragmentProcessors.emplace_back(SkRef(paint.getCoverageFragmentProcessor(i))); } fXPFactory.reset(SkSafeRef(paint.getXPFactory())); @@ -58,17 +58,12 @@ void GrPipelineBuilder::AutoRestoreFragmentProcessorState::set( if (fPipelineBuilder) { int m = fPipelineBuilder->numColorFragmentProcessors() - fColorEffectCnt; SkASSERT(m >= 0); - for (int i = 0; i < m; ++i) { - fPipelineBuilder->fColorFragmentProcessors.fromBack(i)->unref(); - } fPipelineBuilder->fColorFragmentProcessors.pop_back_n(m); int n = fPipelineBuilder->numCoverageFragmentProcessors() - fCoverageEffectCnt; SkASSERT(n >= 0); - for (int i = 0; i < n; ++i) { - fPipelineBuilder->fCoverageFragmentProcessors.fromBack(i)->unref(); - } fPipelineBuilder->fCoverageFragmentProcessors.pop_back_n(n); + SkDEBUGCODE(--fPipelineBuilder->fBlockEffectRemovalCnt;) } fPipelineBuilder = const_cast<GrPipelineBuilder*>(pipelineBuilder); @@ -83,10 +78,4 @@ void GrPipelineBuilder::AutoRestoreFragmentProcessorState::set( GrPipelineBuilder::~GrPipelineBuilder() { SkASSERT(0 == fBlockEffectRemovalCnt); - for (int i = 0; i < fColorFragmentProcessors.count(); ++i) { - fColorFragmentProcessors[i]->unref(); - } - for (int i = 0; i < fCoverageFragmentProcessors.count(); ++i) { - fCoverageFragmentProcessors[i]->unref(); - } } |