aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2016-03-30 13:34:16 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-30 13:34:17 -0700
commit2238c9dbca4b791edc512957728a18ce14d55912 (patch)
tree684102215b697506f7c2dce012bb89183467e208 /src
parent3243143f25f4ccba632847574cf8e1a8ee0fe0f2 (diff)
Update SkMergeImageFilter to sk_sp
Diffstat (limited to 'src')
-rw-r--r--src/core/SkImageFilter.cpp16
-rw-r--r--src/core/SkLocalMatrixImageFilter.cpp3
-rw-r--r--src/core/SkMatrixImageFilter.cpp2
-rw-r--r--src/effects/SkAlphaThresholdFilter.cpp2
-rw-r--r--src/effects/SkBlurImageFilter.cpp2
-rw-r--r--src/effects/SkColorFilterImageFilter.cpp2
-rw-r--r--src/effects/SkComposeImageFilter.cpp3
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp3
-rw-r--r--src/effects/SkDropShadowImageFilter.cpp2
-rw-r--r--src/effects/SkLightingImageFilter.cpp4
-rw-r--r--src/effects/SkMagnifierImageFilter.cpp2
-rw-r--r--src/effects/SkMatrixConvolutionImageFilter.cpp2
-rwxr-xr-xsrc/effects/SkMergeImageFilter.cpp8
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp4
-rw-r--r--src/effects/SkOffsetImageFilter.cpp2
-rwxr-xr-xsrc/effects/SkTestImageFilters.cpp2
-rw-r--r--src/effects/SkTileImageFilter.cpp2
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp4
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 {