diff options
author | 2016-03-30 13:34:16 -0700 | |
---|---|---|
committer | 2016-03-30 13:34:17 -0700 | |
commit | 2238c9dbca4b791edc512957728a18ce14d55912 (patch) | |
tree | 684102215b697506f7c2dce012bb89183467e208 /src | |
parent | 3243143f25f4ccba632847574cf8e1a8ee0fe0f2 (diff) |
Update SkMergeImageFilter to sk_sp
TBR=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1847583002
Review URL: https://codereview.chromium.org/1847583002
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkImageFilter.cpp | 16 | ||||
-rw-r--r-- | src/core/SkLocalMatrixImageFilter.cpp | 3 | ||||
-rw-r--r-- | src/core/SkMatrixImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkAlphaThresholdFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkBlurImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkColorFilterImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkComposeImageFilter.cpp | 3 | ||||
-rw-r--r-- | src/effects/SkDisplacementMapEffect.cpp | 3 | ||||
-rw-r--r-- | src/effects/SkDropShadowImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkLightingImageFilter.cpp | 4 | ||||
-rw-r--r-- | src/effects/SkMagnifierImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkMatrixConvolutionImageFilter.cpp | 2 | ||||
-rwxr-xr-x | src/effects/SkMergeImageFilter.cpp | 8 | ||||
-rw-r--r-- | src/effects/SkMorphologyImageFilter.cpp | 4 | ||||
-rw-r--r-- | src/effects/SkOffsetImageFilter.cpp | 2 | ||||
-rwxr-xr-x | src/effects/SkTestImageFilters.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkTileImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkXfermodeImageFilter.cpp | 4 |
18 files changed, 28 insertions, 37 deletions
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index e999d3aebb..3b4ad31456 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -105,22 +105,14 @@ static int32_t next_image_filter_unique_id() { return id; } -SkImageFilter::Common::~Common() { - for (int i = 0; i < fInputs.count(); ++i) { - SkSafeUnref(fInputs[i]); - } -} - void SkImageFilter::Common::allocInputs(int count) { - const size_t size = count * sizeof(SkImageFilter*); fInputs.reset(count); - sk_bzero(fInputs.get(), size); } void SkImageFilter::Common::detachInputs(SkImageFilter** inputs) { - const size_t size = fInputs.count() * sizeof(SkImageFilter*); - memcpy(inputs, fInputs.get(), size); - sk_bzero(fInputs.get(), size); + for (int i = 0; i < fInputs.count(); ++i) { + inputs[i] = fInputs[i].release(); + } } bool SkImageFilter::Common::unflatten(SkReadBuffer& buffer, int expectedCount) { @@ -135,7 +127,7 @@ bool SkImageFilter::Common::unflatten(SkReadBuffer& buffer, int expectedCount) { this->allocInputs(count); for (int i = 0; i < count; i++) { if (buffer.readBool()) { - fInputs[i] = buffer.readImageFilter(); + fInputs[i] = sk_sp<SkImageFilter>(buffer.readImageFilter()); } if (!buffer.isValid()) { return false; diff --git a/src/core/SkLocalMatrixImageFilter.cpp b/src/core/SkLocalMatrixImageFilter.cpp index d1b5715b7f..bf29bd235b 100644 --- a/src/core/SkLocalMatrixImageFilter.cpp +++ b/src/core/SkLocalMatrixImageFilter.cpp @@ -20,8 +20,7 @@ SkFlattenable* SkLocalMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkMatrix lm; buffer.readMatrix(&lm); - return SkLocalMatrixImageFilter::Make(lm, - sk_ref_sp<SkImageFilter>(common.getInput(0))).release(); + return SkLocalMatrixImageFilter::Make(lm, common.getInput(0)).release(); } void SkLocalMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/core/SkMatrixImageFilter.cpp b/src/core/SkMatrixImageFilter.cpp index ec221fdcac..b8f510f91c 100644 --- a/src/core/SkMatrixImageFilter.cpp +++ b/src/core/SkMatrixImageFilter.cpp @@ -34,7 +34,7 @@ SkFlattenable* SkMatrixImageFilter::CreateProc(SkReadBuffer& buffer) { SkMatrix matrix; buffer.readMatrix(&matrix); SkFilterQuality quality = static_cast<SkFilterQuality>(buffer.readInt()); - return Create(matrix, quality, common.getInput(0)); + return Create(matrix, quality, common.getInput(0).get()); } void SkMatrixImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkAlphaThresholdFilter.cpp b/src/effects/SkAlphaThresholdFilter.cpp index 55dfe58b46..177a3ba5f0 100644 --- a/src/effects/SkAlphaThresholdFilter.cpp +++ b/src/effects/SkAlphaThresholdFilter.cpp @@ -269,7 +269,7 @@ SkFlattenable* SkAlphaThresholdFilterImpl::CreateProc(SkReadBuffer& buffer) { SkScalar outer = buffer.readScalar(); SkRegion rgn; buffer.readRegion(&rgn); - return SkAlphaThresholdFilter::Create(rgn, inner, outer, common.getInput(0)); + return SkAlphaThresholdFilter::Create(rgn, inner, outer, common.getInput(0).get()); } SkAlphaThresholdFilterImpl::SkAlphaThresholdFilterImpl(const SkRegion& region, diff --git a/src/effects/SkBlurImageFilter.cpp b/src/effects/SkBlurImageFilter.cpp index 65c0aa8d0a..c7964c3218 100644 --- a/src/effects/SkBlurImageFilter.cpp +++ b/src/effects/SkBlurImageFilter.cpp @@ -46,7 +46,7 @@ SkFlattenable* SkBlurImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkScalar sigmaX = buffer.readScalar(); SkScalar sigmaY = buffer.readScalar(); - return Create(sigmaX, sigmaY, common.getInput(0), &common.cropRect()); + return Create(sigmaX, sigmaY, common.getInput(0).get(), &common.cropRect()); } void SkBlurImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 1da8b2ce16..beb3138c84 100644 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -44,7 +44,7 @@ SkColorFilterImageFilter::SkColorFilterImageFilter(SkColorFilter* cf, SkFlattenable* SkColorFilterImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); sk_sp<SkColorFilter> cf(buffer.readColorFilter()); - return Create(cf.get(), common.getInput(0), &common.cropRect()); + return Create(cf.get(), common.getInput(0).get(), &common.cropRect()); } void SkColorFilterImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/SkComposeImageFilter.cpp index 3cd8a9e6fd..e2a27a8312 100644 --- a/src/effects/SkComposeImageFilter.cpp +++ b/src/effects/SkComposeImageFilter.cpp @@ -60,8 +60,7 @@ SkIRect SkComposeImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& SkFlattenable* SkComposeImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); - return SkComposeImageFilter::Make(sk_ref_sp<SkImageFilter>(common.getInput(0)), - sk_ref_sp<SkImageFilter>(common.getInput(1))).release(); + return SkComposeImageFilter::Make(common.getInput(0), common.getInput(1)).release(); } #ifndef SK_IGNORE_TO_STRING diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp index ec75fd0604..d054e58e51 100644 --- a/src/effects/SkDisplacementMapEffect.cpp +++ b/src/effects/SkDisplacementMapEffect.cpp @@ -200,7 +200,8 @@ SkFlattenable* SkDisplacementMapEffect::CreateProc(SkReadBuffer& buffer) { ChannelSelectorType xsel = (ChannelSelectorType)buffer.readInt(); ChannelSelectorType ysel = (ChannelSelectorType)buffer.readInt(); SkScalar scale = buffer.readScalar(); - return Create(xsel, ysel, scale, common.getInput(0), common.getInput(1), &common.cropRect()); + return Create(xsel, ysel, scale, + common.getInput(0).get(), common.getInput(1).get(), &common.cropRect()); } void SkDisplacementMapEffect::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/SkDropShadowImageFilter.cpp index 93c11ca1bb..6e750ca74c 100644 --- a/src/effects/SkDropShadowImageFilter.cpp +++ b/src/effects/SkDropShadowImageFilter.cpp @@ -37,7 +37,7 @@ SkFlattenable* SkDropShadowImageFilter::CreateProc(SkReadBuffer& buffer) { ShadowMode shadowMode = buffer.isVersionLT(SkReadBuffer::kDropShadowMode_Version) ? kDrawShadowAndForeground_ShadowMode : static_cast<ShadowMode>(buffer.readInt()); - return Create(dx, dy, sigmaX, sigmaY, color, shadowMode, common.getInput(0), + return Create(dx, dy, sigmaX, sigmaY, color, shadowMode, common.getInput(0).get(), &common.cropRect()); } diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp index 92028180f6..55a1f22909 100644 --- a/src/effects/SkLightingImageFilter.cpp +++ b/src/effects/SkLightingImageFilter.cpp @@ -1215,7 +1215,7 @@ SkFlattenable* SkDiffuseLightingImageFilter::CreateProc(SkReadBuffer& buffer) { SkAutoTUnref<SkImageFilterLight> light(SkImageFilterLight::UnflattenLight(buffer)); SkScalar surfaceScale = buffer.readScalar(); SkScalar kd = buffer.readScalar(); - return Create(light, surfaceScale, kd, common.getInput(0), &common.cropRect()); + return Create(light, surfaceScale, kd, common.getInput(0).get(), &common.cropRect()); } void SkDiffuseLightingImageFilter::flatten(SkWriteBuffer& buffer) const { @@ -1358,7 +1358,7 @@ SkFlattenable* SkSpecularLightingImageFilter::CreateProc(SkReadBuffer& buffer) { SkScalar surfaceScale = buffer.readScalar(); SkScalar ks = buffer.readScalar(); SkScalar shine = buffer.readScalar(); - return Create(light, surfaceScale, ks, shine, common.getInput(0), &common.cropRect()); + return Create(light, surfaceScale, ks, shine, common.getInput(0).get(), &common.cropRect()); } void SkSpecularLightingImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp index 7ec2aa21ec..bfad549485 100644 --- a/src/effects/SkMagnifierImageFilter.cpp +++ b/src/effects/SkMagnifierImageFilter.cpp @@ -285,7 +285,7 @@ SkFlattenable* SkMagnifierImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkRect src; buffer.readRect(&src); - return Create(src, buffer.readScalar(), common.getInput(0)); + return Create(src, buffer.readScalar(), common.getInput(0).get()); } void SkMagnifierImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp index 7a25f5f7eb..c8b43bbfd0 100644 --- a/src/effects/SkMatrixConvolutionImageFilter.cpp +++ b/src/effects/SkMatrixConvolutionImageFilter.cpp @@ -97,7 +97,7 @@ SkFlattenable* SkMatrixConvolutionImageFilter::CreateProc(SkReadBuffer& buffer) TileMode tileMode = (TileMode)buffer.readInt(); bool convolveAlpha = buffer.readBool(); return Create(kernelSize, kernel.get(), gain, bias, kernelOffset, tileMode, convolveAlpha, - common.getInput(0), &common.cropRect()); + common.getInput(0).get(), &common.cropRect()); } void SkMatrixConvolutionImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp index 47d33dffb4..07b2c1cf3e 100755 --- a/src/effects/SkMergeImageFilter.cpp +++ b/src/effects/SkMergeImageFilter.cpp @@ -42,10 +42,10 @@ void SkMergeImageFilter::initModes(const SkXfermode::Mode modes[]) { } } -SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* filters[], int count, +SkMergeImageFilter::SkMergeImageFilter(sk_sp<SkImageFilter> filters[], int count, const SkXfermode::Mode modes[], const CropRect* cropRect) - : INHERITED(count, filters, cropRect) { + : INHERITED(filters, count, cropRect) { SkASSERT(count >= 0); this->initModes(modes); } @@ -149,9 +149,9 @@ SkFlattenable* SkMergeImageFilter::CreateProc(SkReadBuffer& buffer) { if (!buffer.isValid()) { return nullptr; } - return Create(common.inputs(), count, modes.get(), &common.cropRect()); + return Make(common.inputs(), count, modes.get(), &common.cropRect()).release(); } - return Create(common.inputs(), count, nullptr, &common.cropRect()); + return Make(common.inputs(), count, nullptr, &common.cropRect()).release(); } void SkMergeImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp index 5c36480bc8..dbb116ed22 100644 --- a/src/effects/SkMorphologyImageFilter.cpp +++ b/src/effects/SkMorphologyImageFilter.cpp @@ -76,14 +76,14 @@ SkFlattenable* SkErodeImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); const int width = buffer.readInt(); const int height = buffer.readInt(); - return Create(width, height, common.getInput(0), &common.cropRect()); + return Create(width, height, common.getInput(0).get(), &common.cropRect()); } SkFlattenable* SkDilateImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); const int width = buffer.readInt(); const int height = buffer.readInt(); - return Create(width, height, common.getInput(0), &common.cropRect()); + return Create(width, height, common.getInput(0).get(), &common.cropRect()); } #ifndef SK_IGNORE_TO_STRING diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp index 05df229b3e..a2de25e7de 100644 --- a/src/effects/SkOffsetImageFilter.cpp +++ b/src/effects/SkOffsetImageFilter.cpp @@ -86,7 +86,7 @@ SkFlattenable* SkOffsetImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); SkPoint offset; buffer.readPoint(&offset); - return Create(offset.x(), offset.y(), common.getInput(0), &common.cropRect()); + return Create(offset.x(), offset.y(), common.getInput(0).get(), &common.cropRect()); } void SkOffsetImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkTestImageFilters.cpp b/src/effects/SkTestImageFilters.cpp index b8b0e187ed..a77f5190ff 100755 --- a/src/effects/SkTestImageFilters.cpp +++ b/src/effects/SkTestImageFilters.cpp @@ -77,7 +77,7 @@ bool SkDownSampleImageFilter::onFilterImageDeprecated(Proxy* proxy, const SkBitm SkFlattenable* SkDownSampleImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1); - return Create(buffer.readScalar(), common.getInput(0)); + return Create(buffer.readScalar(), common.getInput(0).get()); } void SkDownSampleImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp index e6b561dec4..a4129a5ad0 100644 --- a/src/effects/SkTileImageFilter.cpp +++ b/src/effects/SkTileImageFilter.cpp @@ -127,7 +127,7 @@ SkFlattenable* SkTileImageFilter::CreateProc(SkReadBuffer& buffer) { SkRect src, dst; buffer.readRect(&src); buffer.readRect(&dst); - return Create(src, dst, common.getInput(0)); + return Create(src, dst, common.getInput(0).get()); } void SkTileImageFilter::flatten(SkWriteBuffer& buffer) const { diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp index 8cd75127ba..3b186039d0 100644 --- a/src/effects/SkXfermodeImageFilter.cpp +++ b/src/effects/SkXfermodeImageFilter.cpp @@ -40,8 +40,8 @@ SkXfermodeImageFilter::SkXfermodeImageFilter(sk_sp<SkXfermode> mode, SkFlattenable* SkXfermodeImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); sk_sp<SkXfermode> mode(buffer.readXfermode()); - return Make(std::move(mode), common.getInput(0), - common.getInput(1), &common.cropRect()).release(); + return Make(std::move(mode), common.getInput(0).get(), + common.getInput(1).get(), &common.cropRect()).release(); } void SkXfermodeImageFilter::flatten(SkWriteBuffer& buffer) const { |