Supply separate flags for onBuildTileIndex
This is a follow up to: https://codereview.chromium.org/1401283003/ Supply separate flags for onBuildTileIndex Since png and jpeg's implementations of onBuildTileIndex rely on modifications to their underlying libraries, rather than whether we are running on Android, use separate flags that can be disabled independently. This will allow us to easily turn off the feature. It also is a step towards building and running on other platforms for testing (e.g. valgrind/ASAN to find memory leaks etc). BUG=skia: Committed: https://skia.googlesource.com/skia/+/fc06e9c0e621744654e231ae6fa4460d88c0e27e Review URL: https://codereview.chromium.org/1402783008
This commit is contained in:
parent
c8d1dd48c0
commit
c2d0bc5c20
@ -8,12 +8,16 @@
|
|||||||
|
|
||||||
#include "SkJpegUtility.h"
|
#include "SkJpegUtility.h"
|
||||||
|
|
||||||
|
#if defined(SK_BUILD_FOR_ANDROID) && !defined(SK_JPEG_NO_INDEX_SUPPORTED)
|
||||||
|
#define SK_JPEG_INDEX_SUPPORTED
|
||||||
|
#endif
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
static void sk_init_source(j_decompress_ptr cinfo) {
|
static void sk_init_source(j_decompress_ptr cinfo) {
|
||||||
skjpeg_source_mgr* src = (skjpeg_source_mgr*)cinfo->src;
|
skjpeg_source_mgr* src = (skjpeg_source_mgr*)cinfo->src;
|
||||||
src->next_input_byte = (const JOCTET*)src->fBuffer;
|
src->next_input_byte = (const JOCTET*)src->fBuffer;
|
||||||
src->bytes_in_buffer = 0;
|
src->bytes_in_buffer = 0;
|
||||||
#ifdef SK_BUILD_FOR_ANDROID
|
#ifdef SK_JPEG_INDEX_SUPPORTED
|
||||||
src->current_offset = 0;
|
src->current_offset = 0;
|
||||||
#endif
|
#endif
|
||||||
if (!src->fStream->rewind()) {
|
if (!src->fStream->rewind()) {
|
||||||
@ -22,7 +26,7 @@ static void sk_init_source(j_decompress_ptr cinfo) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SK_BUILD_FOR_ANDROID
|
#ifdef SK_JPEG_INDEX_SUPPORTED
|
||||||
static boolean sk_seek_input_data(j_decompress_ptr cinfo, long byte_offset) {
|
static boolean sk_seek_input_data(j_decompress_ptr cinfo, long byte_offset) {
|
||||||
skjpeg_source_mgr* src = (skjpeg_source_mgr*)cinfo->src;
|
skjpeg_source_mgr* src = (skjpeg_source_mgr*)cinfo->src;
|
||||||
size_t bo = (size_t) byte_offset;
|
size_t bo = (size_t) byte_offset;
|
||||||
@ -57,7 +61,7 @@ static boolean sk_fill_input_buffer(j_decompress_ptr cinfo) {
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SK_BUILD_FOR_ANDROID
|
#ifdef SK_JPEG_INDEX_SUPPORTED
|
||||||
src->current_offset += bytes;
|
src->current_offset += bytes;
|
||||||
#endif
|
#endif
|
||||||
src->next_input_byte = (const JOCTET*)src->fBuffer;
|
src->next_input_byte = (const JOCTET*)src->fBuffer;
|
||||||
@ -77,7 +81,7 @@ static void sk_skip_input_data(j_decompress_ptr cinfo, long num_bytes) {
|
|||||||
cinfo->err->error_exit((j_common_ptr)cinfo);
|
cinfo->err->error_exit((j_common_ptr)cinfo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef SK_BUILD_FOR_ANDROID
|
#ifdef SK_JPEG_INDEX_SUPPORTED
|
||||||
src->current_offset += bytes;
|
src->current_offset += bytes;
|
||||||
#endif
|
#endif
|
||||||
bytesToSkip -= bytes;
|
bytesToSkip -= bytes;
|
||||||
@ -104,7 +108,7 @@ skjpeg_source_mgr::skjpeg_source_mgr(SkStream* stream, SkImageDecoder* decoder)
|
|||||||
skip_input_data = sk_skip_input_data;
|
skip_input_data = sk_skip_input_data;
|
||||||
resync_to_restart = jpeg_resync_to_restart;
|
resync_to_restart = jpeg_resync_to_restart;
|
||||||
term_source = sk_term_source;
|
term_source = sk_term_source;
|
||||||
#ifdef SK_BUILD_FOR_ANDROID
|
#ifdef SK_JPEG_INDEX_SUPPORTED
|
||||||
seek_input_data = sk_seek_input_data;
|
seek_input_data = sk_seek_input_data;
|
||||||
#endif
|
#endif
|
||||||
// SkDebugf("**************** use memorybase %p %d\n", fMemoryBase, fMemoryBaseSize);
|
// SkDebugf("**************** use memorybase %p %d\n", fMemoryBase, fMemoryBaseSize);
|
||||||
|
Loading…
Reference in New Issue
Block a user