diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-04 20:07:47 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-04 20:07:47 +0000 |
commit | c84728d72a47415929464c5cf062300d86a91246 (patch) | |
tree | f58b4fe50ae82e23fee49e879e8490ef2957f617 /src | |
parent | a0b266d8170211d9f2a6f90ba9c889f0c1b6d1b6 (diff) |
Changed maxInputCount for exact inputCount
Processing still had issue when the number of inputs was 0, so I changed my previous fix from a maximum input count to an exact input count. -1 is used when the input count isn't fixed (but still has to be a non-negative number).
BUG=
R=senorblanco@chromium.org, reed@google.com, sugoi@google.com, bsalomon@google.com
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/100803004
git-svn-id: http://skia.googlecode.com/svn/trunk@12492 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/animator/SkScript.cpp | 6 | ||||
-rw-r--r-- | src/core/SkImageFilter.cpp | 4 | ||||
-rwxr-xr-x | src/effects/SkMergeImageFilter.cpp | 7 |
3 files changed, 7 insertions, 10 deletions
diff --git a/src/animator/SkScript.cpp b/src/animator/SkScript.cpp index c74b195f3a..934b0abe1a 100644 --- a/src/animator/SkScript.cpp +++ b/src/animator/SkScript.cpp @@ -1532,11 +1532,11 @@ bool SkScriptEngine::ConvertTo(SkScriptEngine* engine, SkDisplayTypes toType, Sk SkString* strPtr = new SkString(); SkASSERT(engine); engine->track(strPtr); - if (type == SkType_Int) + if (type == SkType_Int) { strPtr->appendS32(operand.fS32); - else if (type == SkType_Displayable) + } else if (type == SkType_Displayable) { SkASSERT(0); // must call through instance version instead of static version - else { + } else { if (type != SkType_Float) { success = false; break; diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp index cca22bba55..aadf9040b0 100644 --- a/src/core/SkImageFilter.cpp +++ b/src/core/SkImageFilter.cpp @@ -53,9 +53,9 @@ SkImageFilter::~SkImageFilter() { delete[] fInputs; } -SkImageFilter::SkImageFilter(int maxInputCount, SkFlattenableReadBuffer& buffer) { +SkImageFilter::SkImageFilter(int inputCount, SkFlattenableReadBuffer& buffer) { fInputCount = buffer.readInt(); - if (buffer.validate((fInputCount >= 0) && (fInputCount <= maxInputCount))) { + if (buffer.validate((fInputCount >= 0) && ((inputCount < 0) || (fInputCount == inputCount)))) { fInputs = new SkImageFilter*[fInputCount]; for (int i = 0; i < fInputCount; i++) { if (buffer.readBool()) { diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp index a755fe68cb..b90c830725 100755 --- a/src/effects/SkMergeImageFilter.cpp +++ b/src/effects/SkMergeImageFilter.cpp @@ -11,9 +11,6 @@ #include "SkFlattenableBuffers.h" #include "SkValidationUtils.h" -// Use 65535 as an arbitrary large number of inputs that this image filter should never overflow -static const int kMaxInputs = 65535; - /////////////////////////////////////////////////////////////////////////////// void SkMergeImageFilter::initAllocModes() { @@ -56,7 +53,7 @@ SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* first, SkImageFilter* seco SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* filters[], int count, const SkXfermode::Mode modes[], const CropRect* cropRect) : INHERITED(count, filters, cropRect) { - SkASSERT(count <= kMaxInputs); + SkASSERT(count >= 0); this->initModes(modes); } @@ -161,7 +158,7 @@ void SkMergeImageFilter::flatten(SkFlattenableWriteBuffer& buffer) const { } SkMergeImageFilter::SkMergeImageFilter(SkFlattenableReadBuffer& buffer) - : INHERITED(kMaxInputs, buffer) { + : INHERITED(-1, buffer) { bool hasModes = buffer.readBool(); if (hasModes) { this->initAllocModes(); |