Simplify code for configuring suppression of ImageDecoder warnings

For images.png.suppressDecoderWarnings and
images.jpeg.suppressDecoderWarnings, the default behavior is now:

	Debug - DON'T suppress
	Developer Release - suppress
	Release - suppress

This behavior can be changed in Debug and in Developer through
the SkRTConf mechanism.

BUG=skia:1680
R=caryclark@google.com

Review URL: https://codereview.chromium.org/26863003

git-svn-id: http://skia.googlecode.com/svn/trunk@11749 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
halcanary@google.com 2013-10-14 12:49:15 +00:00
parent 805ca19625
commit 2a10318814
2 changed files with 19 additions and 23 deletions

View File

@ -16,12 +16,10 @@
#include "SkTemplates.h"
#include "SkTime.h"
#include "SkUtils.h"
#include "SkRTConf.h"
#include "SkRect.h"
#include "SkCanvas.h"
#if defined(SK_DEBUG)
#include "SkRTConf.h" // SK_CONF_DECLARE
#endif // defined(SK_DEBUG)
#include <stdio.h>
extern "C" {
@ -40,10 +38,14 @@ extern "C" {
// support for two additional formats (1) JCS_RGBA_8888 and (2) JCS_RGB_565.
#if defined(SK_DEBUG)
SK_CONF_DECLARE(bool, c_suppressJPEGImageDecoderWarnings,
"images.jpeg.suppressDecoderWarnings", false,
"Suppress most JPG warnings when calling decode functions.");
#define DEFAULT_FOR_SUPPRESS_JPEG_IMAGE_DECODER_WARNINGS false
#else // !defined(SK_DEBUG)
#define DEFAULT_FOR_SUPPRESS_JPEG_IMAGE_DECODER_WARNINGS true
#endif // defined(SK_DEBUG)
SK_CONF_DECLARE(bool, c_suppressJPEGImageDecoderWarnings,
"images.jpeg.suppressDecoderWarnings",
DEFAULT_FOR_SUPPRESS_JPEG_IMAGE_DECODER_WARNINGS,
"Suppress most JPG warnings when calling decode functions.");
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
@ -74,7 +76,6 @@ static void initialize_info(jpeg_decompress_struct* cinfo, skjpeg_source_mgr* sr
jpeg_create_decompress(cinfo);
overwrite_mem_buffer_size(cinfo);
cinfo->src = src_mgr;
#if defined(SK_DEBUG)
/* To suppress warnings with a SK_DEBUG binary, set the
* environment variable "skia_images_jpeg_suppressDecoderWarnings"
* to "true". Inside a program that links to skia:
@ -82,9 +83,6 @@ static void initialize_info(jpeg_decompress_struct* cinfo, skjpeg_source_mgr* sr
if (c_suppressJPEGImageDecoderWarnings) {
cinfo->err->emit_message = &do_nothing_emit_message;
}
#else // Always suppress in release mode.
cinfo->err->emit_message = &do_nothing_emit_message;
#endif // defined(SK_DEBUG)
}
#ifdef SK_BUILD_FOR_ANDROID

View File

@ -13,16 +13,12 @@
#include "SkColorPriv.h"
#include "SkDither.h"
#include "SkMath.h"
#include "SkRTConf.h"
#include "SkScaledBitmapSampler.h"
#include "SkStream.h"
#include "SkTemplates.h"
#include "SkUtils.h"
#include "transform_scanline.h"
#if defined(SK_DEBUG)
#include "SkRTConf.h" // SK_CONF_DECLARE
#endif // defined(SK_DEBUG)
extern "C" {
#include "png.h"
}
@ -45,10 +41,16 @@ extern "C" {
#endif
#if defined(SK_DEBUG)
SK_CONF_DECLARE(bool, c_suppressPNGImageDecoderWarnings,
"images.png.suppressDecoderWarnings", false,
"Suppress most PNG warnings when calling image decode functions.");
#define DEFAULT_FOR_SUPPRESS_PNG_IMAGE_DECODER_WARNINGS false
#else // !defined(SK_DEBUG)
#define DEFAULT_FOR_SUPPRESS_PNG_IMAGE_DECODER_WARNINGS true
#endif // defined(SK_DEBUG)
SK_CONF_DECLARE(bool, c_suppressPNGImageDecoderWarnings,
"images.png.suppressDecoderWarnings",
DEFAULT_FOR_SUPPRESS_PNG_IMAGE_DECODER_WARNINGS,
"Suppress most PNG warnings when calling image decode "
"functions.");
class SkPNGImageIndex {
@ -222,18 +224,14 @@ bool SkPNGImageDecoder::onDecodeInit(SkStream* sk_stream, png_structp *png_ptrp,
* the compiler header file version, so that we know if the application
* was compiled with a compatible version of the library. */
#if defined(SK_DEBUG)
png_error_ptr user_warning_fn =
(c_suppressPNGImageDecoderWarnings) ? (&do_nothing_warning_fn) : NULL;
/* NULL means to leave as default library behavior. */
/* c_suppressPNGImageDecoderWarnings defaults to false. */
/* c_suppressPNGImageDecoderWarnings default depends on SK_DEBUG. */
/* To suppress warnings with a SK_DEBUG binary, set the
* environment variable "skia_images_png_suppressDecoderWarnings"
* to "true". Inside a program that links to skia:
* SK_CONF_SET("images.png.suppressDecoderWarnings", true); */
#else // Always suppress in release mode
png_error_ptr user_warning_fn = &do_nothing_warning_fn;
#endif // defined(SK_DEBUG)
png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING,
NULL, sk_error_fn, user_warning_fn);