diff options
author | Matthias Clasen <mclasen@redhat.com> | 2008-07-20 00:34:58 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2008-07-20 00:34:58 +0000 |
commit | acb7f6449a8c553e4e4564cc24ed9916168b7e5f (patch) | |
tree | aca0c5f8f61ac6a017f213c75cf743be698d68ff /gio/gdesktopappinfo.c | |
parent | cb3b591aaa34bdbea4b41399bb935325ef573834 (diff) |
543504 – crash in Epiphany Web Browser: Opening local file
2008-07-19 Matthias Clasen <mclasen@redhat.com>
543504 – crash in Epiphany Web Browser: Opening local file
* gappinfo.c:
* gasyncresult.c:
* gdesktopappinfo.c:
* gdrive.c:
* gfile.c:
* gicon.c:
* gloadableicon.c:
* gmount.c:
* gseekable.c:
* gvolume.c: Register types thread-safely.
Patch by Christian Persch
svn path=/trunk/; revision=7208
Diffstat (limited to 'gio/gdesktopappinfo.c')
-rw-r--r-- | gio/gdesktopappinfo.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c index 9a384b198..f8ad6bfd0 100644 --- a/gio/gdesktopappinfo.c +++ b/gio/gdesktopappinfo.c @@ -2502,11 +2502,11 @@ static void g_desktop_app_info_lookup_class_init (gpointer g_class, GType g_desktop_app_info_lookup_get_type (void) { - static GType desktop_app_info_lookup_type = 0; + static volatile gsize g_define_type_id__volatile = 0; - if (! desktop_app_info_lookup_type) + if (g_once_init_enter (&g_define_type_id__volatile)) { - static const GTypeInfo desktop_app_info_lookup_info = + const GTypeInfo desktop_app_info_lookup_info = { sizeof (GDesktopAppInfoLookupIface), /* class_size */ g_desktop_app_info_lookup_base_init, /* base_init */ @@ -2518,15 +2518,16 @@ g_desktop_app_info_lookup_get_type (void) 0, /* n_preallocs */ NULL }; - - desktop_app_info_lookup_type = + GType g_define_type_id = g_type_register_static (G_TYPE_INTERFACE, I_("GDesktopAppInfoLookup"), &desktop_app_info_lookup_info, 0); - g_type_interface_add_prerequisite (desktop_app_info_lookup_type, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_OBJECT); + + g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); } - return desktop_app_info_lookup_type; + return g_define_type_id__volatile; } static void |