diff options
Diffstat (limited to 'src/images/SkImageDecoder.cpp')
-rw-r--r-- | src/images/SkImageDecoder.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/images/SkImageDecoder.cpp b/src/images/SkImageDecoder.cpp index 16cba641db..2c3edc8be5 100644 --- a/src/images/SkImageDecoder.cpp +++ b/src/images/SkImageDecoder.cpp @@ -339,3 +339,28 @@ bool SkImageDecoder::DecodeStream(SkStream* stream, SkBitmap* bm, } return success; } + +namespace { + /** + * This function leaks, but that is okay because it is not intended + * to be called. It is only here so that the linker will include the + * decoders. + * Make sure to keep it in sync with images.gyp, so only the encoders + * which are created on a platform are linked. + */ + void force_linking() { + SkASSERT(false); + CreateJPEGImageDecoder(); + CreateWEBPImageDecoder(); + CreateBMPImageDecoder(); + CreateICOImageDecoder(); + CreateWBMPImageDecoder(); + // Only link GIF and PNG on platforms that build them. See images.gyp +#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_NACL) + CreateGIFImageDecoder(); +#endif +#if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) + CreatePNGImageDecoder(); +#endif + } +} |