diff options
author | 2016-04-03 09:11:13 -0700 | |
---|---|---|
committer | 2016-04-03 09:11:13 -0700 | |
commit | 60c9b58b3214b0154c931656e91e39b230e987d8 (patch) | |
tree | 6dd59cf90dd96a443a50ae4b6fa14be6f778c823 /src/core | |
parent | cf9bafceafaf6c0bf8b0eac8de509aa1d8407fca (diff) |
change flattenable factory to return sk_sp
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1855733002
Review URL: https://codereview.chromium.org/1855733002
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkBitmapProcShader.cpp | 4 | ||||
-rw-r--r-- | src/core/SkBlitter.cpp | 7 | ||||
-rw-r--r-- | src/core/SkColorFilter.cpp | 4 | ||||
-rw-r--r-- | src/core/SkColorFilterShader.cpp | 4 | ||||
-rw-r--r-- | src/core/SkColorMatrixFilterRowMajor255.cpp | 4 | ||||
-rw-r--r-- | src/core/SkComposeShader.cpp | 4 | ||||
-rw-r--r-- | src/core/SkLightingShader.cpp | 6 | ||||
-rw-r--r-- | src/core/SkLocalMatrixImageFilter.cpp | 4 | ||||
-rw-r--r-- | src/core/SkLocalMatrixShader.cpp | 4 | ||||
-rw-r--r-- | src/core/SkMatrixImageFilter.cpp | 4 | ||||
-rw-r--r-- | src/core/SkModeColorFilter.cpp | 4 | ||||
-rw-r--r-- | src/core/SkPaint.cpp | 4 | ||||
-rw-r--r-- | src/core/SkPathEffect.cpp | 8 | ||||
-rw-r--r-- | src/core/SkPictureShader.cpp | 4 | ||||
-rw-r--r-- | src/core/SkReadBuffer.cpp | 4 | ||||
-rw-r--r-- | src/core/SkReadBuffer.h | 30 | ||||
-rw-r--r-- | src/core/SkShader.cpp | 8 | ||||
-rw-r--r-- | src/core/SkValidatingReadBuffer.cpp | 6 | ||||
-rw-r--r-- | src/core/SkXfermode.cpp | 4 |
19 files changed, 52 insertions, 65 deletions
diff --git a/src/core/SkBitmapProcShader.cpp b/src/core/SkBitmapProcShader.cpp index 14114c0893..c9df4ce248 100644 --- a/src/core/SkBitmapProcShader.cpp +++ b/src/core/SkBitmapProcShader.cpp @@ -275,7 +275,7 @@ bool SkBitmapProcShader::onIsABitmap(SkBitmap* texture, SkMatrix* texM, TileMode return true; } -SkFlattenable* SkBitmapProcShader::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkBitmapProcShader::CreateProc(SkReadBuffer& buffer) { SkMatrix lm; buffer.readMatrix(&lm); SkBitmap bm; @@ -285,7 +285,7 @@ SkFlattenable* SkBitmapProcShader::CreateProc(SkReadBuffer& buffer) { bm.setImmutable(); TileMode mx = (TileMode)buffer.readUInt(); TileMode my = (TileMode)buffer.readUInt(); - return SkShader::MakeBitmapShader(bm, mx, my, &lm).release(); + return SkShader::MakeBitmapShader(bm, mx, my, &lm); } void SkBitmapProcShader::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp index d8e81d59b8..8f0031cd46 100644 --- a/src/core/SkBlitter.cpp +++ b/src/core/SkBlitter.cpp @@ -730,8 +730,8 @@ private: typedef SkShader INHERITED; }; -SkFlattenable* Sk3DShader::CreateProc(SkReadBuffer& buffer) { - return new Sk3DShader(buffer.readShader()); +sk_sp<SkFlattenable> Sk3DShader::CreateProc(SkReadBuffer& buffer) { + return sk_make_sp<Sk3DShader>(buffer.readShader()); } class Sk3DBlitter : public SkBlitter { @@ -745,8 +745,7 @@ public: fProxy->blitH(x, y, width); } - virtual void blitAntiH(int x, int y, const SkAlpha antialias[], - const int16_t runs[]) override { + void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]) override { fProxy->blitAntiH(x, y, antialias, runs); } diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp index 3e0a2ec46f..e3d8957947 100644 --- a/src/core/SkColorFilter.cpp +++ b/src/core/SkColorFilter.cpp @@ -142,10 +142,10 @@ private: typedef SkColorFilter INHERITED; }; -SkFlattenable* SkComposeColorFilter::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkComposeColorFilter::CreateProc(SkReadBuffer& buffer) { sk_sp<SkColorFilter> outer(buffer.readColorFilter()); sk_sp<SkColorFilter> inner(buffer.readColorFilter()); - return MakeComposeFilter(std::move(outer), std::move(inner)).release(); + return MakeComposeFilter(std::move(outer), std::move(inner)); } /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/core/SkColorFilterShader.cpp b/src/core/SkColorFilterShader.cpp index 8a175024de..500ead4f74 100644 --- a/src/core/SkColorFilterShader.cpp +++ b/src/core/SkColorFilterShader.cpp @@ -23,13 +23,13 @@ SkColorFilterShader::SkColorFilterShader(sk_sp<SkShader> shader, sk_sp<SkColorFi SkASSERT(fFilter); } -SkFlattenable* SkColorFilterShader::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkColorFilterShader::CreateProc(SkReadBuffer& buffer) { auto shader = buffer.readShader(); auto filter = buffer.readColorFilter(); if (!shader || !filter) { return nullptr; } - return new SkColorFilterShader(shader, filter); + return sk_make_sp<SkColorFilterShader>(shader, filter); } void SkColorFilterShader::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkColorMatrixFilterRowMajor255.cpp b/src/core/SkColorMatrixFilterRowMajor255.cpp index bd9a66a561..c158a7948f 100644 --- a/src/core/SkColorMatrixFilterRowMajor255.cpp +++ b/src/core/SkColorMatrixFilterRowMajor255.cpp @@ -157,10 +157,10 @@ void SkColorMatrixFilterRowMajor255::flatten(SkWriteBuffer& buffer) const { buffer.writeScalarArray(fMatrix, 20); } -SkFlattenable* SkColorMatrixFilterRowMajor255::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkColorMatrixFilterRowMajor255::CreateProc(SkReadBuffer& buffer) { SkScalar matrix[20]; if (buffer.readScalarArray(matrix, 20)) { - return new SkColorMatrixFilterRowMajor255(matrix); + return sk_make_sp<SkColorMatrixFilterRowMajor255>(matrix); } return nullptr; } diff --git a/src/core/SkComposeShader.cpp b/src/core/SkComposeShader.cpp index f39f20c46c..46b7724944 100644 --- a/src/core/SkComposeShader.cpp +++ b/src/core/SkComposeShader.cpp @@ -39,14 +39,14 @@ private: }; #define SkAutoAlphaRestore(...) SK_REQUIRE_LOCAL_VAR(SkAutoAlphaRestore) -SkFlattenable* SkComposeShader::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkComposeShader::CreateProc(SkReadBuffer& buffer) { sk_sp<SkShader> shaderA(buffer.readShader()); sk_sp<SkShader> shaderB(buffer.readShader()); sk_sp<SkXfermode> mode(buffer.readXfermode()); if (!shaderA || !shaderB) { return nullptr; } - return new SkComposeShader(std::move(shaderA), std::move(shaderB), std::move(mode)); + return sk_make_sp<SkComposeShader>(std::move(shaderA), std::move(shaderB), std::move(mode)); } void SkComposeShader::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkLightingShader.cpp b/src/core/SkLightingShader.cpp index fdd0a04aee..eba7d652eb 100644 --- a/src/core/SkLightingShader.cpp +++ b/src/core/SkLightingShader.cpp @@ -552,7 +552,7 @@ void SkLightingShaderImpl::toString(SkString* str) const { } #endif -SkFlattenable* SkLightingShaderImpl::CreateProc(SkReadBuffer& buf) { +sk_sp<SkFlattenable> SkLightingShaderImpl::CreateProc(SkReadBuffer& buf) { SkMatrix diffLocalM; bool hasDiffLocalM = buf.readBool(); if (hasDiffLocalM) { @@ -606,8 +606,8 @@ SkFlattenable* SkLightingShaderImpl::CreateProc(SkReadBuffer& buf) { SkAutoTUnref<const SkLightingShader::Lights> lights(builder.finish()); - return new SkLightingShaderImpl(diffuse, normal, lights, SkVector::Make(1.0f, 0.0f), - &diffLocalM, &normLocalM); + return sk_make_sp<SkLightingShaderImpl>(diffuse, normal, lights, SkVector::Make(1.0f, 0.0f), + &diffLocalM, &normLocalM); } void SkLightingShaderImpl::flatten(SkWriteBuffer& buf) const { diff --git a/src/core/SkLocalMatrixImageFilter.cpp b/src/core/SkLocalMatrixImageFilter.cpp index bf29bd235b..42acee0c22 100644 --- a/src/core/SkLocalMatrixImageFilter.cpp +++ b/src/core/SkLocalMatrixImageFilter.cpp @@ -16,11 +16,11 @@ SkLocalMatrixImageFilter::SkLocalMatrixImageFilter(const SkMatrix& localM, , fLocalM(localM) { } -SkFlattenable* SkLocalMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkLocalMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkMatrix lm; buffer.readMatrix(&lm); - return SkLocalMatrixImageFilter::Make(lm, common.getInput(0)).release(); + return SkLocalMatrixImageFilter::Make(lm, common.getInput(0)); } void SkLocalMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkLocalMatrixShader.cpp b/src/core/SkLocalMatrixShader.cpp index ddd6114ca8..ea4db5352c 100644 --- a/src/core/SkLocalMatrixShader.cpp +++ b/src/core/SkLocalMatrixShader.cpp @@ -7,14 +7,14 @@ #include "SkLocalMatrixShader.h" -SkFlattenable* SkLocalMatrixShader::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkLocalMatrixShader::CreateProc(SkReadBuffer& buffer) { SkMatrix lm; buffer.readMatrix(&lm); auto baseShader(buffer.readShader()); if (!baseShader) { return nullptr; } - return baseShader->makeWithLocalMatrix(lm).release(); + return baseShader->makeWithLocalMatrix(lm); } void SkLocalMatrixShader::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkMatrixImageFilter.cpp b/src/core/SkMatrixImageFilter.cpp index d66772c244..70bc81af43 100644 --- a/src/core/SkMatrixImageFilter.cpp +++ b/src/core/SkMatrixImageFilter.cpp @@ -28,12 +28,12 @@ SkMatrixImageFilter* SkMatrixImageFilter::Create(const SkMatrix& transform, return new SkMatrixImageFilter(transform, filterQuality, input); } -SkFlattenable* SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkMatrix matrix; buffer.readMatrix(&matrix); SkFilterQuality quality = static_cast<SkFilterQuality>(buffer.readInt()); - return Create(matrix, quality, common.getInput(0).get()); + return sk_sp<SkImageFilter>(Create(matrix, quality, common.getInput(0).get())); } void SkMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkModeColorFilter.cpp b/src/core/SkModeColorFilter.cpp index 84c6491f3a..eacd261b5c 100644 --- a/src/core/SkModeColorFilter.cpp +++ b/src/core/SkModeColorFilter.cpp @@ -77,10 +77,10 @@ void SkModeColorFilter::updateCache() { fProc = SkXfermode::GetProc(fMode); } -SkFlattenable* SkModeColorFilter::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkModeColorFilter::CreateProc(SkReadBuffer& buffer) { SkColor color = buffer.readColor(); SkXfermode::Mode mode = (SkXfermode::Mode)buffer.readUInt(); - return SkColorFilter::MakeModeFilter(color, mode).release(); + return SkColorFilter::MakeModeFilter(color, mode); } /////////////////////////////////////////////////////////////////////////////// diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index e4eca0cf99..d5e4c08c1f 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -1930,11 +1930,11 @@ void SkPaint::unflatten(SkReadBuffer& buffer) { this->setPathEffect(buffer.readPathEffect()); this->setShader(buffer.readShader()); this->setXfermode(buffer.readXfermode()); - SkSafeUnref(this->setMaskFilter(buffer.readMaskFilter())); + this->setMaskFilter(buffer.readMaskFilter()); this->setColorFilter(buffer.readColorFilter()); this->setRasterizer(buffer.readRasterizer()); this->setLooper(buffer.readDrawLooper()); - SkSafeUnref(this->setImageFilter(buffer.readImageFilter())); + this->setImageFilter(buffer.readImageFilter()); if (buffer.isVersionLT(SkReadBuffer::kAnnotationsMovedToCanvas_Version)) { // We used to store annotations here (string+skdata) if this bool was true diff --git a/src/core/SkPathEffect.cpp b/src/core/SkPathEffect.cpp index b2e29bc09d..1178348af5 100644 --- a/src/core/SkPathEffect.cpp +++ b/src/core/SkPathEffect.cpp @@ -57,10 +57,10 @@ void SkPairPathEffect::toString(SkString* str) const { /////////////////////////////////////////////////////////////////////////////// -SkFlattenable* SkComposePathEffect::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkComposePathEffect::CreateProc(SkReadBuffer& buffer) { sk_sp<SkPathEffect> pe0(buffer.readPathEffect()); sk_sp<SkPathEffect> pe1(buffer.readPathEffect()); - return SkComposePathEffect::Make(std::move(pe0), std::move(pe1)).release(); + return SkComposePathEffect::Make(std::move(pe0), std::move(pe1)); } bool SkComposePathEffect::filterPath(SkPath* dst, const SkPath& src, @@ -85,10 +85,10 @@ void SkComposePathEffect::toString(SkString* str) const { /////////////////////////////////////////////////////////////////////////////// -SkFlattenable* SkSumPathEffect::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkSumPathEffect::CreateProc(SkReadBuffer& buffer) { sk_sp<SkPathEffect> pe0(buffer.readPathEffect()); sk_sp<SkPathEffect> pe1(buffer.readPathEffect()); - return SkSumPathEffect::Make(pe0, pe1).release(); + return SkSumPathEffect::Make(pe0, pe1); } bool SkSumPathEffect::filterPath(SkPath* dst, const SkPath& src, diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp index 76ecfc1570..b6f4d02a55 100644 --- a/src/core/SkPictureShader.cpp +++ b/src/core/SkPictureShader.cpp @@ -110,7 +110,7 @@ sk_sp<SkShader> SkPictureShader::Make(sk_sp<SkPicture> picture, TileMode tmx, Ti return sk_sp<SkShader>(new SkPictureShader(std::move(picture), tmx, tmy, localMatrix, tile)); } -SkFlattenable* SkPictureShader::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkPictureShader::CreateProc(SkReadBuffer& buffer) { SkMatrix lm; buffer.readMatrix(&lm); TileMode mx = (TileMode)buffer.read32(); @@ -136,7 +136,7 @@ SkFlattenable* SkPictureShader::CreateProc(SkReadBuffer& buffer) { picture = SkPicture::MakeFromBuffer(buffer); } } - return SkPictureShader::Make(picture, mx, my, &lm, &tile).release(); + return SkPictureShader::Make(picture, mx, my, &lm, &tile); } void SkPictureShader::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkReadBuffer.cpp b/src/core/SkReadBuffer.cpp index 2dd9f093ac..f220b5a9e6 100644 --- a/src/core/SkReadBuffer.cpp +++ b/src/core/SkReadBuffer.cpp @@ -356,7 +356,7 @@ SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { // if we get here, factory may still be null, but if that is the case, the // failure was ours, not the writer. - SkFlattenable* obj = nullptr; + sk_sp<SkFlattenable> obj; uint32_t sizeRecorded = fReader.readU32(); if (factory) { size_t offset = fReader.offset(); @@ -371,7 +371,7 @@ SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { // we must skip the remaining data fReader.skip(sizeRecorded); } - return obj; + return obj.release(); } /** diff --git a/src/core/SkReadBuffer.h b/src/core/SkReadBuffer.h index a9983989cc..7b12194fc0 100644 --- a/src/core/SkReadBuffer.h +++ b/src/core/SkReadBuffer.h @@ -127,27 +127,17 @@ public: void readPaint(SkPaint* paint) { paint->unflatten(*this); } virtual SkFlattenable* readFlattenable(SkFlattenable::Type); - template <typename T> T* readFlattenable() { - return (T*) this->readFlattenable(T::GetFlattenableType()); - } - sk_sp<SkColorFilter> readColorFilter() { - return sk_sp<SkColorFilter>(this->readFlattenable<SkColorFilter>()); - } - sk_sp<SkDrawLooper> readDrawLooper() { - return sk_sp<SkDrawLooper>(this->readFlattenable<SkDrawLooper>()); - } - SkImageFilter* readImageFilter() { return this->readFlattenable<SkImageFilter>(); } - SkMaskFilter* readMaskFilter() { return this->readFlattenable<SkMaskFilter>(); } - sk_sp<SkPathEffect> readPathEffect() { - return sk_sp<SkPathEffect>(this->readFlattenable<SkPathEffect>()); - } - sk_sp<SkRasterizer> readRasterizer() { - return sk_sp<SkRasterizer>(this->readFlattenable<SkRasterizer>()); - } - sk_sp<SkShader> readShader() { return sk_sp<SkShader>(this->readFlattenable<SkShader>()); } - sk_sp<SkXfermode> readXfermode() { - return sk_sp<SkXfermode>(this->readFlattenable<SkXfermode>()); + template <typename T> sk_sp<T> readFlattenable() { + return sk_sp<T>((T*)this->readFlattenable(T::GetFlattenableType())); } + sk_sp<SkColorFilter> readColorFilter() { return this->readFlattenable<SkColorFilter>(); } + sk_sp<SkDrawLooper> readDrawLooper() { return this->readFlattenable<SkDrawLooper>(); } + sk_sp<SkImageFilter> readImageFilter() { return this->readFlattenable<SkImageFilter>(); } + sk_sp<SkMaskFilter> readMaskFilter() { return this->readFlattenable<SkMaskFilter>(); } + sk_sp<SkPathEffect> readPathEffect() { return this->readFlattenable<SkPathEffect>(); } + sk_sp<SkRasterizer> readRasterizer() { return this->readFlattenable<SkRasterizer>(); } + sk_sp<SkShader> readShader() { return this->readFlattenable<SkShader>(); } + sk_sp<SkXfermode> readXfermode() { return this->readFlattenable<SkXfermode>(); } /** * Like readFlattenable() but explicitly just skips the data that was written for the diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp index e4cbc7b217..8032cc6e4c 100644 --- a/src/core/SkShader.cpp +++ b/src/core/SkShader.cpp @@ -264,8 +264,8 @@ bool SkColorShader::isOpaque() const { return SkColorGetA(fColor) == 255; } -SkFlattenable* SkColorShader::CreateProc(SkReadBuffer& buffer) { - return new SkColorShader(buffer.readColor()); +sk_sp<SkFlattenable> SkColorShader::CreateProc(SkReadBuffer& buffer) { + return sk_make_sp<SkColorShader>(buffer.readColor()); } void SkColorShader::flatten(SkWriteBuffer& buffer) const { @@ -419,8 +419,8 @@ bool SkColorShader::ColorShaderContext::onChooseBlitProcs(const SkImageInfo& inf /////////////////////////////////////////////////////////////////////////////// -SkFlattenable* SkEmptyShader::CreateProc(SkReadBuffer&) { - return SkShader::MakeEmptyShader().release(); +sk_sp<SkFlattenable> SkEmptyShader::CreateProc(SkReadBuffer&) { + return SkShader::MakeEmptyShader(); } #ifndef SK_IGNORE_TO_STRING diff --git a/src/core/SkValidatingReadBuffer.cpp b/src/core/SkValidatingReadBuffer.cpp index bc5611a3e3..ad4b6c409e 100644 --- a/src/core/SkValidatingReadBuffer.cpp +++ b/src/core/SkValidatingReadBuffer.cpp @@ -243,7 +243,7 @@ SkFlattenable* SkValidatingReadBuffer::readFlattenable(SkFlattenable::Type type) // if we get here, factory may still be null, but if that is the case, the // failure was ours, not the writer. - SkFlattenable* obj = nullptr; + sk_sp<SkFlattenable> obj; uint32_t sizeRecorded = this->readUInt(); if (factory) { size_t offset = fReader.offset(); @@ -252,8 +252,6 @@ SkFlattenable* SkValidatingReadBuffer::readFlattenable(SkFlattenable::Type type) size_t sizeRead = fReader.offset() - offset; this->validate(sizeRecorded == sizeRead); if (fError) { - // we could try to fix up the offset... - SkSafeUnref(obj); obj = nullptr; } } else { @@ -261,7 +259,7 @@ SkFlattenable* SkValidatingReadBuffer::readFlattenable(SkFlattenable::Type type) this->skip(sizeRecorded); SkASSERT(false); } - return obj; + return obj.release(); } void SkValidatingReadBuffer::skipFlattenable() { diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp index 01d6dc53c2..1cfe864751 100644 --- a/src/core/SkXfermode.cpp +++ b/src/core/SkXfermode.cpp @@ -1092,12 +1092,12 @@ bool SkXfermode::isOpaque(SkXfermode::SrcColorOpacity opacityType) const { /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// -SkFlattenable* SkProcCoeffXfermode::CreateProc(SkReadBuffer& buffer) { +sk_sp<SkFlattenable> SkProcCoeffXfermode::CreateProc(SkReadBuffer& buffer) { uint32_t mode32 = buffer.read32(); if (!buffer.validate(mode32 < SK_ARRAY_COUNT(gProcCoeffs))) { return nullptr; } - return SkXfermode::Make((SkXfermode::Mode)mode32).release(); + return SkXfermode::Make((SkXfermode::Mode)mode32); } void SkProcCoeffXfermode::flatten(SkWriteBuffer& buffer) const { |