summaryrefslogtreecommitdiff
path: root/gio/gdesktopappinfo.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2008-07-20 00:34:58 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-07-20 00:34:58 +0000
commitacb7f6449a8c553e4e4564cc24ed9916168b7e5f (patch)
treeaca0c5f8f61ac6a017f213c75cf743be698d68ff /gio/gdesktopappinfo.c
parentcb3b591aaa34bdbea4b41399bb935325ef573834 (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.c15
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