diff options
-rw-r--r-- | include/core/SkImageFilter.h | 8 | ||||
-rw-r--r-- | src/core/SkImageFilter.cpp | 10 |
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; } |