GNOME Bugzilla – Bug 158157
g_thread_init() from the pixbuf loader causing gdk-pixbuf-query-modules to crash
Last modified: 2004-12-22 21:47:04 UTC
The recent change to make gnome_vfs_init() be called from rsvg_init() seems to be causing gdk-pixbuf-query-loaders to crash - at least, reverting that change makes the problem go away. See attached stack trace. Seems not to be caused by recent changes to make gdk-pixbuf threadsafe (reverting that patch doesn't help). This causes the build to fail on make install in librsvg and corrupts loaders list.
Created attachment 33727 [details] gdk-pixbuf-query-loaders stack trace
If the patch in bug 158177 is accepted, then this can be fixed by doing: Index: io-svg.c =================================================================== RCS file: /cvs/gnome/librsvg/gdk-pixbuf-loader/io-svg.c,v retrieving revision 1.21 diff -u -r1.21 io-svg.c --- io-svg.c 12 Nov 2004 16:56:09 -0000 1.21 +++ io-svg.c 13 Nov 2004 16:03:27 -0000 @@ -199,6 +199,7 @@ fill_vtable (GdkPixbufModule *module) { rsvg_init (); + g_module_make_resident (module->module); module->begin_load = gdk_pixbuf__svg_image_begin_load; module->stop_load = gdk_pixbuf__svg_image_stop_load; If that patch is not accepted, then you could kludge around it by wrapping an "if (module->module) { ... }" around those two lines, so that rsvg_init() wouldn't get called in the query-loaders case (which is fine, since it doesn't actually do any rsvg work in that case).
i'll just back out that line for now. the gdk pixbuf module loaders really need proper init_module() and cleanup_module() functions.