Index: src/images/SkForceLinking.cpp |
diff --git a/src/images/SkForceLinking.cpp b/src/images/SkForceLinking.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..81dbf2eac808ebdf1fec4d376b497b26a1bd537a |
--- /dev/null |
+++ b/src/images/SkForceLinking.cpp |
@@ -0,0 +1,35 @@ |
+/* |
+ * Copyright 2013 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+#include "SkForceLinking.h" |
+#include "SkImageDecoder.h" |
+ |
+// This method is required to fool the linker into not discarding the pre-main |
+// initialization and registration of the decoder classes. Passing true will |
+// cause memory leaks. |
+int SkForceLinking(bool doNotPassTrue) { |
+ if (doNotPassTrue) { |
+ SkASSERT(false); |
+ CreateJPEGImageDecoder(); |
+ CreateWEBPImageDecoder(); |
+ CreateBMPImageDecoder(); |
+ CreateICOImageDecoder(); |
+ CreateWBMPImageDecoder(); |
+#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_WIN) |
+ CreateDefaultDecoder(); |
+#endif |
+ // 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 |
+ return -1; |
+ } |
+ return 0; |
+} |