From c0b7e10c6a68f59e1653e6c18e6bc954b3c3f0cf Mon Sep 17 00:00:00 2001 From: "commit-bot@chromium.org" Date: Wed, 23 Oct 2013 17:06:21 +0000 Subject: Initial error handling code I made it as simple as possible. The impact seems minimal and it should do what's necessary to make this code secure. BUG= Committed: http://code.google.com/p/skia/source/detail?r=11247 R=reed@google.com, scroggo@google.com, djsollen@google.com, sugoi@google.com, bsalomon@google.com, mtklein@google.com, senorblanco@google.com, senorblanco@chromium.org Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/23021015 git-svn-id: http://skia.googlecode.com/svn/trunk@11922 2bbb7eff-a529-9590-31e7-b0007b416f81 --- src/ports/SkGlobalInitialization_chromium.cpp | 94 +++++++++++++++++++++++++-- src/ports/SkGlobalInitialization_default.cpp | 12 ++-- 2 files changed, 97 insertions(+), 9 deletions(-) (limited to 'src/ports') diff --git a/src/ports/SkGlobalInitialization_chromium.cpp b/src/ports/SkGlobalInitialization_chromium.cpp index 3dd79c01f8..d402c02e21 100644 --- a/src/ports/SkGlobalInitialization_chromium.cpp +++ b/src/ports/SkGlobalInitialization_chromium.cpp @@ -5,32 +5,116 @@ * found in the LICENSE file. */ +#include "SkTypes.h" + #include "SkBitmapProcShader.h" +#include "SkMallocPixelRef.h" +#include "SkPathEffect.h" +#include "SkPixelRef.h" +#include "SkXfermode.h" + +#include "Sk1DPathEffect.h" +#include "Sk2DPathEffect.h" +#include "SkArithmeticMode.h" +#include "SkAvoidXfermode.h" +#include "SkBicubicImageFilter.h" +#include "SkBitmapSource.h" +#include "SkBlurDrawLooper.h" #include "SkBlurImageFilter.h" #include "SkBlurMaskFilter.h" #include "SkColorFilter.h" +#include "SkColorFilterImageFilter.h" +#include "SkColorMatrixFilter.h" +#include "SkColorShader.h" +#include "SkComposeImageFilter.h" +#include "SkComposeShader.h" #include "SkCornerPathEffect.h" #include "SkDashPathEffect.h" +#include "SkDiscretePathEffect.h" +#include "SkDisplacementMapEffect.h" +#include "SkDropShadowImageFilter.h" +#include "SkEmptyShader.h" +#include "SkEmbossMaskFilter.h" +#include "SkFlattenable.h" #include "SkGradientShader.h" +#include "SkImages.h" #include "SkLayerDrawLooper.h" +#include "SkLayerRasterizer.h" +#include "SkLerpXfermode.h" +#include "SkLightingImageFilter.h" #include "SkLumaColorFilter.h" -#include "SkMallocPixelRef.h" -#include "SkXfermode.h" #include "SkMagnifierImageFilter.h" +#include "SkMatrixConvolutionImageFilter.h" +#include "SkMergeImageFilter.h" +#include "SkMorphologyImageFilter.h" +#include "SkOffsetImageFilter.h" +#include "SkOnce.h" +#include "SkPerlinNoiseShader.h" +#include "SkPixelXorXfermode.h" +#include "SkRectShaderImageFilter.h" +#include "SkStippleMaskFilter.h" +#include "SkTableColorFilter.h" +#include "SkTestImageFilters.h" +#include "SkTileImageFilter.h" +#include "SkXfermodeImageFilter.h" -void SkFlattenable::InitializeFlattenables() { - +static void InitializeFlattenables(int*) { + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAvoidXfermode) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBicubicImageFilter) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapSource) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurDrawLooper) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBlurImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorMatrixFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorShader) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposePathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeShader) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkCornerPathEffect) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDashPathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDilateImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDiscretePathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDisplacementMapEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDropShadowImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmbossMaskFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkEmptyShader) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkErodeImageFilter) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerDrawLooper) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLayerRasterizer) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLerpXfermode) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLumaColorFilter) - SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMallocPixelRef) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath1DPathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(Sk2DPathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkLine2DPathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPath2DPathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPerlinNoiseShader) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkPixelXorXfermode) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkRectShaderImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkStippleMaskFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkSumPathEffect) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkTileImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkXfermodeImageFilter) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMagnifierImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMatrixConvolutionImageFilter) + + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkOffsetImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkComposeImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMergeImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkColorFilterImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkDownSampleImageFilter) + SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkMallocPixelRef) + SkArithmeticMode::InitializeFlattenables(); SkBlurMaskFilter::InitializeFlattenables(); SkColorFilter::InitializeFlattenables(); SkGradientShader::InitializeFlattenables(); + SkImages::InitializeFlattenables(); + SkLightingImageFilter::InitializeFlattenables(); + SkTableColorFilter::InitializeFlattenables(); SkXfermode::InitializeFlattenables(); } + +void SkFlattenable::InitializeFlattenablesIfNeeded() { + int dummy; + SK_DECLARE_STATIC_ONCE(once); + SkOnce(&once, InitializeFlattenables, &dummy); +} diff --git a/src/ports/SkGlobalInitialization_default.cpp b/src/ports/SkGlobalInitialization_default.cpp index 1c22f23178..d402c02e21 100644 --- a/src/ports/SkGlobalInitialization_default.cpp +++ b/src/ports/SkGlobalInitialization_default.cpp @@ -15,7 +15,6 @@ #include "Sk1DPathEffect.h" #include "Sk2DPathEffect.h" -#include "SkAnnotation.h" #include "SkArithmeticMode.h" #include "SkAvoidXfermode.h" #include "SkBicubicImageFilter.h" @@ -31,7 +30,6 @@ #include "SkComposeShader.h" #include "SkCornerPathEffect.h" #include "SkDashPathEffect.h" -#include "SkData.h" #include "SkDiscretePathEffect.h" #include "SkDisplacementMapEffect.h" #include "SkDropShadowImageFilter.h" @@ -50,6 +48,7 @@ #include "SkMergeImageFilter.h" #include "SkMorphologyImageFilter.h" #include "SkOffsetImageFilter.h" +#include "SkOnce.h" #include "SkPerlinNoiseShader.h" #include "SkPixelXorXfermode.h" #include "SkRectShaderImageFilter.h" @@ -59,8 +58,7 @@ #include "SkTileImageFilter.h" #include "SkXfermodeImageFilter.h" -void SkFlattenable::InitializeFlattenables() { - +static void InitializeFlattenables(int*) { SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkAvoidXfermode) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBicubicImageFilter) SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(SkBitmapProcShader) @@ -114,3 +112,9 @@ void SkFlattenable::InitializeFlattenables() { SkTableColorFilter::InitializeFlattenables(); SkXfermode::InitializeFlattenables(); } + +void SkFlattenable::InitializeFlattenablesIfNeeded() { + int dummy; + SK_DECLARE_STATIC_ONCE(once); + SkOnce(&once, InitializeFlattenables, &dummy); +} -- cgit v1.2.3