| Index: src/images/SkImageDecoder_libpng.cpp
|
| diff --git a/src/images/SkImageDecoder_libpng.cpp b/src/images/SkImageDecoder_libpng.cpp
|
| index c188a2fabc4ef93c21c899c7a6173b053bcc93ee..6a039541682f63a3a7cd6524d58b12bfcd24f498 100644
|
| --- a/src/images/SkImageDecoder_libpng.cpp
|
| +++ b/src/images/SkImageDecoder_libpng.cpp
|
| @@ -42,7 +42,7 @@ extern "C" {
|
|
|
| class SkPNGImageIndex {
|
| public:
|
| - SkPNGImageIndex(SkStream* stream, png_structp png_ptr, png_infop info_ptr)
|
| + SkPNGImageIndex(SkStreamRewindable* stream, png_structp png_ptr, png_infop info_ptr)
|
| : fStream(stream)
|
| , fPng_ptr(png_ptr)
|
| , fInfo_ptr(info_ptr)
|
| @@ -56,10 +56,10 @@ public:
|
| }
|
| }
|
|
|
| - SkAutoTUnref<SkStream> fStream;
|
| - png_structp fPng_ptr;
|
| - png_infop fInfo_ptr;
|
| - SkBitmap::Config fConfig;
|
| + SkAutoTUnref<SkStreamRewindable> fStream;
|
| + png_structp fPng_ptr;
|
| + png_infop fInfo_ptr;
|
| + SkBitmap::Config fConfig;
|
| };
|
|
|
| class SkPNGImageDecoder : public SkImageDecoder {
|
| @@ -77,15 +77,15 @@ public:
|
|
|
| protected:
|
| #ifdef SK_BUILD_FOR_ANDROID
|
| - virtual bool onBuildTileIndex(SkStream *stream, int *width, int *height) SK_OVERRIDE;
|
| + virtual bool onBuildTileIndex(SkStreamRewindable *stream, int *width, int *height) SK_OVERRIDE;
|
| virtual bool onDecodeSubset(SkBitmap* bitmap, const SkIRect& region) SK_OVERRIDE;
|
| #endif
|
| - virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode) SK_OVERRIDE;
|
| + virtual bool onDecode(SkStreamRewindable* stream, SkBitmap* bm, Mode) SK_OVERRIDE;
|
|
|
| private:
|
| SkPNGImageIndex* fImageIndex;
|
|
|
| - bool onDecodeInit(SkStream* stream, png_structp *png_ptrp, png_infop *info_ptrp);
|
| + bool onDecodeInit(SkStreamRewindable* stream, png_structp *png_ptrp, png_infop *info_ptrp);
|
| bool decodePalette(png_structp png_ptr, png_infop info_ptr,
|
| bool * SK_RESTRICT hasAlphap, bool *reallyHasAlphap,
|
| SkColorTable **colorTablep);
|
| @@ -114,7 +114,7 @@ private:
|
| };
|
|
|
| static void sk_read_fn(png_structp png_ptr, png_bytep data, png_size_t length) {
|
| - SkStream* sk_stream = (SkStream*) png_get_io_ptr(png_ptr);
|
| + SkStreamRewindable* sk_stream = (SkStreamRewindable*) png_get_io_ptr(png_ptr);
|
| size_t bytes = sk_stream->read(data, length);
|
| if (bytes != length) {
|
| png_error(png_ptr, "Read Error!");
|
| @@ -123,7 +123,7 @@ static void sk_read_fn(png_structp png_ptr, png_bytep data, png_size_t length) {
|
|
|
| #ifdef SK_BUILD_FOR_ANDROID
|
| static void sk_seek_fn(png_structp png_ptr, png_uint_32 offset) {
|
| - SkStream* sk_stream = (SkStream*) png_get_io_ptr(png_ptr);
|
| + SkStreamRewindable* sk_stream = (SkStreamRewindable*) png_get_io_ptr(png_ptr);
|
| if (!sk_stream->rewind()) {
|
| png_error(png_ptr, "Failed to rewind stream!");
|
| }
|
| @@ -199,7 +199,7 @@ static bool hasTransparencyInPalette(png_structp png_ptr, png_infop info_ptr) {
|
| return false;
|
| }
|
|
|
| -bool SkPNGImageDecoder::onDecodeInit(SkStream* sk_stream, png_structp *png_ptrp,
|
| +bool SkPNGImageDecoder::onDecodeInit(SkStreamRewindable* sk_stream, png_structp *png_ptrp,
|
| png_infop *info_ptrp) {
|
| /* Create and initialize the png_struct with the desired error handler
|
| * functions. If you want to use the default stderr and longjump method,
|
| @@ -272,7 +272,7 @@ bool SkPNGImageDecoder::onDecodeInit(SkStream* sk_stream, png_structp *png_ptrp,
|
| return true;
|
| }
|
|
|
| -bool SkPNGImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* decodedBitmap,
|
| +bool SkPNGImageDecoder::onDecode(SkStreamRewindable* sk_stream, SkBitmap* decodedBitmap,
|
| Mode mode) {
|
| png_structp png_ptr;
|
| png_infop info_ptr;
|
| @@ -667,7 +667,7 @@ bool SkPNGImageDecoder::decodePalette(png_structp png_ptr, png_infop info_ptr,
|
|
|
| #ifdef SK_BUILD_FOR_ANDROID
|
|
|
| -bool SkPNGImageDecoder::onBuildTileIndex(SkStream* sk_stream, int *width, int *height) {
|
| +bool SkPNGImageDecoder::onBuildTileIndex(SkStreamRewindable* sk_stream, int *width, int *height) {
|
| png_structp png_ptr;
|
| png_infop info_ptr;
|
|
|
| @@ -1176,7 +1176,7 @@ DEFINE_ENCODER_CREATOR(PNGImageEncoder);
|
|
|
| #include "SkTRegistry.h"
|
|
|
| -static bool is_png(SkStream* stream) {
|
| +static bool is_png(SkStreamRewindable* stream) {
|
| char buf[PNG_BYTES_TO_CHECK];
|
| if (stream->read(buf, PNG_BYTES_TO_CHECK) == PNG_BYTES_TO_CHECK &&
|
| !png_sig_cmp((png_bytep) buf, (png_size_t)0, PNG_BYTES_TO_CHECK)) {
|
| @@ -1185,14 +1185,14 @@ static bool is_png(SkStream* stream) {
|
| return false;
|
| }
|
|
|
| -SkImageDecoder* sk_libpng_dfactory(SkStream* stream) {
|
| +SkImageDecoder* sk_libpng_dfactory(SkStreamRewindable* stream) {
|
| if (is_png(stream)) {
|
| return SkNEW(SkPNGImageDecoder);
|
| }
|
| return NULL;
|
| }
|
|
|
| -static SkImageDecoder::Format get_format_png(SkStream* stream) {
|
| +static SkImageDecoder::Format get_format_png(SkStreamRewindable* stream) {
|
| if (is_png(stream)) {
|
| return SkImageDecoder::kPNG_Format;
|
| }
|
| @@ -1204,5 +1204,5 @@ SkImageEncoder* sk_libpng_efactory(SkImageEncoder::Type t) {
|
| }
|
|
|
| static SkTRegistry<SkImageEncoder*, SkImageEncoder::Type> gEReg(sk_libpng_efactory);
|
| -static SkTRegistry<SkImageDecoder::Format, SkStream*> gFormatReg(get_format_png);
|
| -static SkTRegistry<SkImageDecoder*, SkStream*> gDReg(sk_libpng_dfactory);
|
| +static SkTRegistry<SkImageDecoder::Format, SkStreamRewindable*> gFormatReg(get_format_png);
|
| +static SkTRegistry<SkImageDecoder*, SkStreamRewindable*> gDReg(sk_libpng_dfactory);
|
|
|