| Index: src/images/SkJpegUtility.cpp
|
| diff --git a/src/images/SkJpegUtility.cpp b/src/images/SkJpegUtility.cpp
|
| index 89a0472380b444118e422e28ee2e9aaea8c5d891..1f426f21d4ba9ef2bda40b053dd88ebecf43d61d 100644
|
| --- a/src/images/SkJpegUtility.cpp
|
| +++ b/src/images/SkJpegUtility.cpp
|
| @@ -29,15 +29,16 @@ static void sk_init_source(j_decompress_ptr cinfo) {
|
| #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
|
| static boolean sk_seek_input_data(j_decompress_ptr cinfo, long byte_offset) {
|
| skjpeg_source_mgr* src = (skjpeg_source_mgr*)cinfo->src;
|
| + size_t bo = (size_t) byte_offset;
|
|
|
| - if (byte_offset > src->current_offset) {
|
| - (void)src->fStream->skip(byte_offset - src->current_offset);
|
| + if (bo > src->current_offset) {
|
| + (void)src->fStream->skip(bo - src->current_offset);
|
| } else {
|
| src->fStream->rewind();
|
| - (void)src->fStream->skip(byte_offset);
|
| + (void)src->fStream->skip(bo);
|
| }
|
|
|
| - src->current_offset = byte_offset;
|
| + src->current_offset = bo;
|
| src->next_input_byte = (const JOCTET*)src->fBuffer;
|
| src->bytes_in_buffer = 0;
|
| return true;
|
| @@ -109,12 +110,9 @@ static void sk_term_source(j_decompress_ptr /*cinfo*/) {}
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -skjpeg_source_mgr::skjpeg_source_mgr(SkStream* stream, SkImageDecoder* decoder,
|
| - bool ownStream) : fStream(stream) {
|
| - fDecoder = decoder;
|
| - fMemoryBase = NULL;
|
| - fUnrefStream = ownStream;
|
| - fMemoryBaseSize = 0;
|
| +skjpeg_source_mgr::skjpeg_source_mgr(SkStream* stream, SkImageDecoder* decoder)
|
| + : fStream(SkRef(stream))
|
| + , fDecoder(decoder) {
|
|
|
| init_source = sk_init_source;
|
| fill_input_buffer = sk_fill_input_buffer;
|
| @@ -128,12 +126,7 @@ skjpeg_source_mgr::skjpeg_source_mgr(SkStream* stream, SkImageDecoder* decoder,
|
| }
|
|
|
| skjpeg_source_mgr::~skjpeg_source_mgr() {
|
| - if (fMemoryBase) {
|
| - sk_free(fMemoryBase);
|
| - }
|
| - if (fUnrefStream) {
|
| - fStream->unref();
|
| - }
|
| + SkSafeUnref(fStream);
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|