aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkImageFilter.h8
-rw-r--r--src/core/SkImageFilter.cpp10
2 files changed, 5 insertions, 13 deletions
diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h
index 094e67b394..84389b4b5a 100644
--- a/include/core/SkImageFilter.h
+++ b/include/core/SkImageFilter.h
@@ -264,16 +264,14 @@ protected:
const CropRect& cropRect() const { return fCropRect; }
int inputCount() const { return fInputs.count(); }
- sk_sp<SkImageFilter>* inputs() const { return fInputs.get(); }
+ sk_sp<SkImageFilter>* inputs() { return fInputs.begin(); }
- sk_sp<SkImageFilter> getInput(int index) const { return fInputs[index]; }
+ sk_sp<SkImageFilter> getInput(int index) { return fInputs[index]; }
private:
CropRect fCropRect;
// most filters accept at most 2 input-filters
- SkAutoSTArray<2, sk_sp<SkImageFilter>> fInputs;
-
- void allocInputs(int count);
+ SkSTArray<2, sk_sp<SkImageFilter>, true> fInputs;
};
SkImageFilter(sk_sp<SkImageFilter> const* inputs, int inputCount, const CropRect* cropRect);
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index fac63e5102..015b77c42c 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -108,10 +108,6 @@ static int32_t next_image_filter_unique_id() {
return id;
}
-void SkImageFilter::Common::allocInputs(int count) {
- fInputs.reset(count);
-}
-
bool SkImageFilter::Common::unflatten(SkReadBuffer& buffer, int expectedCount) {
const int count = buffer.readInt();
if (!buffer.validate(count >= 0)) {
@@ -121,11 +117,9 @@ bool SkImageFilter::Common::unflatten(SkReadBuffer& buffer, int expectedCount) {
return false;
}
- this->allocInputs(count);
+ SkASSERT(fInputs.empty());
for (int i = 0; i < count; i++) {
- if (buffer.readBool()) {
- fInputs[i] = sk_sp<SkImageFilter>(buffer.readImageFilter());
- }
+ fInputs.push_back(buffer.readBool() ? buffer.readImageFilter() : nullptr);
if (!buffer.isValid()) {
return false;
}