diff options
author | reed <reed@google.com> | 2015-03-19 08:31:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-19 08:31:14 -0700 |
commit | 3ef71e343bf075888fb50892350390b4dd47de24 (patch) | |
tree | d4765ef144928600322cf21bdb41b37f05a55697 /src | |
parent | 647211f1243f2dc925588e75038be49cad7b5431 (diff) |
guarded change to SkImageGenerator to make getInfo() const
BUG=skia:
Review URL: https://codereview.chromium.org/1017293002
Diffstat (limited to 'src')
-rw-r--r-- | src/codec/SkCodec.cpp | 3 | ||||
-rw-r--r-- | src/core/SkImageGenerator.cpp | 14 | ||||
-rw-r--r-- | src/images/SkDecodingImageGenerator.cpp | 5 | ||||
-rw-r--r-- | src/lazy/SkCachingPixelRef.cpp | 9 | ||||
-rw-r--r-- | src/lazy/SkDiscardablePixelRef.cpp | 10 | ||||
-rw-r--r-- | src/ports/SkImageGenerator_skia.cpp | 8 |
6 files changed, 31 insertions, 18 deletions
diff --git a/src/codec/SkCodec.cpp b/src/codec/SkCodec.cpp index d557087c01..12341f5929 100644 --- a/src/codec/SkCodec.cpp +++ b/src/codec/SkCodec.cpp @@ -46,7 +46,8 @@ SkCodec* SkCodec::NewFromData(SkData* data) { } SkCodec::SkCodec(const SkImageInfo& info, SkStream* stream) - : fInfo(info) + : INHERITED(info) + , fInfo(info) , fStream(stream) , fNeedsRewind(false) {} diff --git a/src/core/SkImageGenerator.cpp b/src/core/SkImageGenerator.cpp index 4c69fd2a0b..27bc141d57 100644 --- a/src/core/SkImageGenerator.cpp +++ b/src/core/SkImageGenerator.cpp @@ -7,13 +7,15 @@ #include "SkImageGenerator.h" -bool SkImageGenerator::getInfo(SkImageInfo* info) { - SkImageInfo dummy; - if (NULL == info) { - info = &dummy; +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO +SkImageInfo SkImageGenerator::getInfo() { + SkImageInfo info; + if (!this->onGetInfo(&info)) { + info = SkImageInfo::MakeUnknown(0, 0); } - return this->onGetInfo(info); + return info; } +#endif SkImageGenerator::Result SkImageGenerator::getPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options* options, @@ -120,9 +122,11 @@ SkData* SkImageGenerator::onRefEncodedData() { return NULL; } +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO bool SkImageGenerator::onGetInfo(SkImageInfo*) { return false; } +#endif #ifdef SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS SkImageGenerator::Result SkImageGenerator::onGetPixels(const SkImageInfo&, void*, size_t, diff --git a/src/images/SkDecodingImageGenerator.cpp b/src/images/SkDecodingImageGenerator.cpp index 170397dda1..337a96407b 100644 --- a/src/images/SkDecodingImageGenerator.cpp +++ b/src/images/SkDecodingImageGenerator.cpp @@ -38,10 +38,12 @@ public: protected: SkData* onRefEncodedData() SK_OVERRIDE; +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO bool onGetInfo(SkImageInfo* info) SK_OVERRIDE { *info = fInfo; return true; } +#endif virtual Result onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options&, SkPMColor ctable[], int* ctableCount) SK_OVERRIDE; @@ -116,7 +118,8 @@ DecodingImageGenerator::DecodingImageGenerator( const SkImageInfo& info, int sampleSize, bool ditherImage) - : fData(data) + : INHERITED(info) + , fData(data) , fStream(stream) , fInfo(info) , fSampleSize(sampleSize) diff --git a/src/lazy/SkCachingPixelRef.cpp b/src/lazy/SkCachingPixelRef.cpp index dc53a5d6c7..5fc0d2a87f 100644 --- a/src/lazy/SkCachingPixelRef.cpp +++ b/src/lazy/SkCachingPixelRef.cpp @@ -11,11 +11,12 @@ bool SkCachingPixelRef::Install(SkImageGenerator* generator, SkBitmap* dst) { - SkImageInfo info; SkASSERT(dst != NULL); - if ((NULL == generator) - || !(generator->getInfo(&info)) - || !dst->setInfo(info)) { + if (NULL == generator) { + return false; + } + const SkImageInfo info = generator->getInfo(); + if (!dst->setInfo(info)) { SkDELETE(generator); return false; } diff --git a/src/lazy/SkDiscardablePixelRef.cpp b/src/lazy/SkDiscardablePixelRef.cpp index b810c2b183..1e42042fb6 100644 --- a/src/lazy/SkDiscardablePixelRef.cpp +++ b/src/lazy/SkDiscardablePixelRef.cpp @@ -109,12 +109,12 @@ void SkDiscardablePixelRef::onUnlockPixels() { bool SkInstallDiscardablePixelRef(SkImageGenerator* generator, SkBitmap* dst, SkDiscardableMemory::Factory* factory) { - SkImageInfo info; SkAutoTDelete<SkImageGenerator> autoGenerator(generator); - if ((NULL == autoGenerator.get()) - || (!autoGenerator->getInfo(&info)) - || info.isEmpty() - || (!dst->setInfo(info))) { + if (NULL == autoGenerator.get()) { + return false; + } + SkImageInfo info = autoGenerator->getInfo(); + if (info.isEmpty() || !dst->setInfo(info)) { return false; } // Since dst->setInfo() may have changed/fixed-up info, we copy it back from that bitmap diff --git a/src/ports/SkImageGenerator_skia.cpp b/src/ports/SkImageGenerator_skia.cpp index 1448d57ce5..6938880357 100644 --- a/src/ports/SkImageGenerator_skia.cpp +++ b/src/ports/SkImageGenerator_skia.cpp @@ -39,7 +39,7 @@ class SkImageDecoderGenerator : public SkImageGenerator { public: SkImageDecoderGenerator(const SkImageInfo& info, SkImageDecoder* decoder, SkData* data) - : fInfo(info), fDecoder(decoder), fData(SkRef(data)) + : INHERITED(info), fInfo(info), fDecoder(decoder), fData(SkRef(data)) {} protected: @@ -47,10 +47,12 @@ protected: return SkRef(fData.get()); } +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO virtual bool onGetInfo(SkImageInfo* info) SK_OVERRIDE { *info = fInfo; return true; } +#endif virtual Result onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options&, @@ -92,7 +94,9 @@ protected: SkMemoryStream stream(fData->data(), fData->size(), false); return fDecoder->decodeYUV8Planes(&stream, sizes, planes, rowBytes, colorSpace); } - + +private: + typedef SkImageGenerator INHERITED; }; SkImageGenerator* SkImageGenerator::NewFromData(SkData* data) { |