• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2013 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #include "SkForceLinking.h"
9 #include "SkImageDecoder.h"
10 
11 // This method is required to fool the linker into not discarding the pre-main
12 // initialization and registration of the decoder classes. Passing true will
13 // cause memory leaks.
SkForceLinking(bool doNotPassTrue)14 int SkForceLinking(bool doNotPassTrue) {
15     if (doNotPassTrue) {
16         SkASSERT(false);
17         CreateJPEGImageDecoder();
18         CreateWEBPImageDecoder();
19         CreateBMPImageDecoder();
20         CreateICOImageDecoder();
21         CreateWBMPImageDecoder();
22         // Only link hardware texture codecs on platforms that build them. See images.gyp
23 #ifndef SK_BUILD_FOR_ANDROID_FRAMEWORK
24         CreatePKMImageDecoder();
25         CreateKTXImageDecoder();
26         CreateASTCImageDecoder();
27 #endif
28         // Only link GIF and PNG on platforms that build them. See images.gyp
29 #if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_NACL) \
30         && !defined(SK_BUILD_FOR_IOS)
31         CreateGIFImageDecoder();
32 #endif
33 #if !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_WIN) && !defined(SK_BUILD_FOR_IOS)
34         CreatePNGImageDecoder();
35 #endif
36 #if defined(SK_BUILD_FOR_IOS)
37         CreatePNGImageEncoder_IOS();
38 #endif
39         return -1;
40     }
41     return 0;
42 }
43