summaryrefslogtreecommitdiff
path: root/gdk-pixbuf
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2017-08-02 11:08:20 +0100
committerEmmanuele Bassi <ebassi@gmail.com>2019-02-28 16:27:46 +0000
commit0c6bd292e52e53b7f4970f8b714b3c3404c15f3c (patch)
treee7a31cf306ed25d01dde07b33800b09b8d4d1e73 /gdk-pixbuf
parentd73be6cad65915836d84a38821f9eb4619797a9b (diff)
downloadgdk-pixbuf-0c6bd292e52e53b7f4970f8b714b3c3404c15f3c.tar.gz
core: Split off the initialisation sections
Separate the builtin loaders setup from the external loaders initialisation from the loaders.cache file. https://bugzilla.gnome.org/show_bug.cgi?id=786035
Diffstat (limited to 'gdk-pixbuf')
-rw-r--r--gdk-pixbuf/gdk-pixbuf-io.c152
1 files changed, 81 insertions, 71 deletions
diff --git a/gdk-pixbuf/gdk-pixbuf-io.c b/gdk-pixbuf/gdk-pixbuf-io.c
index 0c8e7d6ef..b86b85e08 100644
--- a/gdk-pixbuf/gdk-pixbuf-io.c
+++ b/gdk-pixbuf/gdk-pixbuf-io.c
@@ -383,8 +383,8 @@ static gboolean
gdk_pixbuf_load_module_unlocked (GdkPixbufModule *image_module,
GError **error);
-static void
-gdk_pixbuf_io_init (void)
+static void
+gdk_pixbuf_io_init_modules (void)
{
#ifdef USE_GMODULE
GIOChannel *channel;
@@ -400,75 +400,6 @@ gdk_pixbuf_io_init (void)
GError *error = NULL;
#endif
-#define load_one_builtin_module(format) G_STMT_START { \
- GdkPixbufModule *__builtin_module = g_new0 (GdkPixbufModule, 1); \
- __builtin_module->module_name = #format; \
- if (gdk_pixbuf_load_module_unlocked (__builtin_module, NULL)) \
- file_formats = g_slist_prepend (file_formats, __builtin_module); \
- else \
- g_free (__builtin_module); } G_STMT_END
-
-#ifdef INCLUDE_ani
- load_one_builtin_module (ani);
-#endif
-#ifdef INCLUDE_png
- load_one_builtin_module (png);
-#endif
-#ifdef INCLUDE_bmp
- load_one_builtin_module (bmp);
-#endif
-#ifdef INCLUDE_gif
- load_one_builtin_module (gif);
-#endif
-#ifdef INCLUDE_ico
- load_one_builtin_module (ico);
-#endif
-#ifdef INCLUDE_jpeg
- load_one_builtin_module (jpeg);
-#endif
-#ifdef INCLUDE_pnm
- load_one_builtin_module (pnm);
-#endif
-#ifdef INCLUDE_tiff
- load_one_builtin_module (tiff);
-#endif
-#ifdef INCLUDE_xpm
- load_one_builtin_module (xpm);
-#endif
-#ifdef INCLUDE_xbm
- load_one_builtin_module (xbm);
-#endif
-#ifdef INCLUDE_tga
- load_one_builtin_module (tga);
-#endif
-#ifdef INCLUDE_icns
- load_one_builtin_module (icns);
-#endif
-#ifdef INCLUDE_jasper
- load_one_builtin_module (jasper);
-#endif
-#ifdef INCLUDE_qtif
- load_one_builtin_module (qtif);
-#endif
-#ifdef INCLUDE_gdiplus
- /* We don't bother having the GDI+ loaders individually selectable
- * for building in or not.
- */
- load_one_builtin_module (ico);
- load_one_builtin_module (wmf);
- load_one_builtin_module (emf);
- load_one_builtin_module (bmp);
- load_one_builtin_module (gif);
- load_one_builtin_module (jpeg);
- load_one_builtin_module (tiff);
-#endif
-#ifdef INCLUDE_gdip_png
- /* Except the gdip-png loader which normally isn't built at all even */
- load_one_builtin_module (png);
-#endif
-
-#undef load_one_builtin_module
-
#ifdef USE_GMODULE
channel = g_io_channel_new_file (filename, "r", &error);
if (!channel) {
@@ -623,6 +554,85 @@ gdk_pixbuf_io_init (void)
#endif
}
+static void
+gdk_pixbuf_io_init_builtin (void)
+{
+#define load_one_builtin_module(format) G_STMT_START { \
+ GdkPixbufModule *__builtin_module = g_new0 (GdkPixbufModule, 1); \
+ __builtin_module->module_name = #format; \
+ if (gdk_pixbuf_load_module_unlocked (__builtin_module, NULL)) \
+ file_formats = g_slist_prepend (file_formats, __builtin_module); \
+ else \
+ g_free (__builtin_module); } G_STMT_END
+
+#ifdef INCLUDE_ani
+ load_one_builtin_module (ani);
+#endif
+#ifdef INCLUDE_png
+ load_one_builtin_module (png);
+#endif
+#ifdef INCLUDE_bmp
+ load_one_builtin_module (bmp);
+#endif
+#ifdef INCLUDE_gif
+ load_one_builtin_module (gif);
+#endif
+#ifdef INCLUDE_ico
+ load_one_builtin_module (ico);
+#endif
+#ifdef INCLUDE_jpeg
+ load_one_builtin_module (jpeg);
+#endif
+#ifdef INCLUDE_pnm
+ load_one_builtin_module (pnm);
+#endif
+#ifdef INCLUDE_tiff
+ load_one_builtin_module (tiff);
+#endif
+#ifdef INCLUDE_xpm
+ load_one_builtin_module (xpm);
+#endif
+#ifdef INCLUDE_xbm
+ load_one_builtin_module (xbm);
+#endif
+#ifdef INCLUDE_tga
+ load_one_builtin_module (tga);
+#endif
+#ifdef INCLUDE_icns
+ load_one_builtin_module (icns);
+#endif
+#ifdef INCLUDE_jasper
+ load_one_builtin_module (jasper);
+#endif
+#ifdef INCLUDE_qtif
+ load_one_builtin_module (qtif);
+#endif
+#ifdef INCLUDE_gdiplus
+ /* We don't bother having the GDI+ loaders individually selectable
+ * for building in or not.
+ */
+ load_one_builtin_module (ico);
+ load_one_builtin_module (wmf);
+ load_one_builtin_module (emf);
+ load_one_builtin_module (bmp);
+ load_one_builtin_module (gif);
+ load_one_builtin_module (jpeg);
+ load_one_builtin_module (tiff);
+#endif
+#ifdef INCLUDE_gdip_png
+ /* Except the gdip-png loader which normally isn't built at all even */
+ load_one_builtin_module (png);
+#endif
+
+#undef load_one_builtin_module
+}
+
+static void
+gdk_pixbuf_io_init (void)
+{
+ gdk_pixbuf_io_init_builtin ();
+ gdk_pixbuf_io_init_modules ();
+}
#define module(type) \
extern void _gdk_pixbuf__##type##_fill_info (GdkPixbufFormat *info); \