glib r7214 - branches/glib-2-16/gio
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7214 - branches/glib-2-16/gio
- Date: Sun, 20 Jul 2008 02:52:44 +0000 (UTC)
Author: matthiasc
Date: Sun Jul 20 02:52:44 2008
New Revision: 7214
URL: http://svn.gnome.org/viewvc/glib?rev=7214&view=rev
Log:
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
Modified:
branches/glib-2-16/gio/ChangeLog
branches/glib-2-16/gio/gappinfo.c
branches/glib-2-16/gio/gasyncresult.c
branches/glib-2-16/gio/gdesktopappinfo.c
branches/glib-2-16/gio/gdrive.c
branches/glib-2-16/gio/gfile.c
branches/glib-2-16/gio/gicon.c
branches/glib-2-16/gio/gloadableicon.c
branches/glib-2-16/gio/gmount.c
branches/glib-2-16/gio/gseekable.c
branches/glib-2-16/gio/gvolume.c
Modified: branches/glib-2-16/gio/gappinfo.c
==============================================================================
--- branches/glib-2-16/gio/gappinfo.c (original)
+++ branches/glib-2-16/gio/gappinfo.c Sun Jul 20 02:52:44 2008
@@ -46,11 +46,11 @@
GType
g_app_info_get_type (void)
{
- static GType app_info_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! app_info_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo app_info_info =
+ const GTypeInfo app_info_info =
{
sizeof (GAppInfoIface), /* class_size */
g_app_info_base_init, /* base_init */
@@ -62,15 +62,16 @@
0, /* n_preallocs */
NULL
};
-
- app_info_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GAppInfo"),
&app_info_info, 0);
- g_type_interface_add_prerequisite (app_info_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 app_info_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gasyncresult.c
==============================================================================
--- branches/glib-2-16/gio/gasyncresult.c (original)
+++ branches/glib-2-16/gio/gasyncresult.c Sun Jul 20 02:52:44 2008
@@ -115,11 +115,11 @@
GType
g_async_result_get_type (void)
{
- static GType async_result_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! async_result_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo async_result_info =
+ const GTypeInfo async_result_info =
{
sizeof (GAsyncResultIface), /* class_size */
g_async_result_base_init, /* base_init */
@@ -131,15 +131,16 @@
0, /* n_preallocs */
NULL
};
-
- async_result_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GAsyncResult"),
&async_result_info, 0);
- g_type_interface_add_prerequisite (async_result_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 async_result_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gdesktopappinfo.c
==============================================================================
--- branches/glib-2-16/gio/gdesktopappinfo.c (original)
+++ branches/glib-2-16/gio/gdesktopappinfo.c Sun Jul 20 02:52:44 2008
@@ -2484,11 +2484,11 @@
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 */
@@ -2500,15 +2500,16 @@
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
Modified: branches/glib-2-16/gio/gdrive.c
==============================================================================
--- branches/glib-2-16/gio/gdrive.c (original)
+++ branches/glib-2-16/gio/gdrive.c Sun Jul 20 02:52:44 2008
@@ -59,11 +59,11 @@
GType
g_drive_get_type (void)
{
- static GType drive_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! drive_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo drive_info =
+ const GTypeInfo drive_info =
{
sizeof (GDriveIface), /* class_size */
g_drive_base_init, /* base_init */
@@ -75,15 +75,16 @@
0, /* n_preallocs */
NULL
};
-
- drive_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GDrive"),
&drive_info, 0);
- g_type_interface_add_prerequisite (drive_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 drive_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gfile.c
==============================================================================
--- branches/glib-2-16/gio/gfile.c (original)
+++ branches/glib-2-16/gio/gfile.c Sun Jul 20 02:52:44 2008
@@ -236,11 +236,11 @@
GType
g_file_get_type (void)
{
- static GType file_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! file_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo file_info =
+ const GTypeInfo file_info =
{
sizeof (GFileIface), /* class_size */
g_file_base_init, /* base_init */
@@ -252,15 +252,16 @@
0, /* n_preallocs */
NULL
};
-
- file_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GFile"),
&file_info, 0);
- g_type_interface_add_prerequisite (file_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 file_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gicon.c
==============================================================================
--- branches/glib-2-16/gio/gicon.c (original)
+++ branches/glib-2-16/gio/gicon.c Sun Jul 20 02:52:44 2008
@@ -51,11 +51,11 @@
GType
g_icon_get_type (void)
{
- static GType icon_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! icon_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo icon_info =
+ const GTypeInfo icon_info =
{
sizeof (GIconIface), /* class_size */
g_icon_base_init, /* base_init */
@@ -67,15 +67,16 @@
0, /* n_preallocs */
NULL
};
-
- icon_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GIcon"),
&icon_info, 0);
- g_type_interface_add_prerequisite (icon_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 icon_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gloadableicon.c
==============================================================================
--- branches/glib-2-16/gio/gloadableicon.c (original)
+++ branches/glib-2-16/gio/gloadableicon.c Sun Jul 20 02:52:44 2008
@@ -53,11 +53,11 @@
GType
g_loadable_icon_get_type (void)
{
- static GType loadable_icon_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! loadable_icon_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo loadable_icon_info =
+ const GTypeInfo loadable_icon_info =
{
sizeof (GLoadableIconIface), /* class_size */
g_loadable_icon_base_init, /* base_init */
@@ -69,15 +69,16 @@
0, /* n_preallocs */
NULL
};
-
- loadable_icon_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GLoadableIcon"),
&loadable_icon_info, 0);
- g_type_interface_add_prerequisite (loadable_icon_type, G_TYPE_ICON);
+ g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_ICON);
+
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
}
- return loadable_icon_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gmount.c
==============================================================================
--- branches/glib-2-16/gio/gmount.c (original)
+++ branches/glib-2-16/gio/gmount.c Sun Jul 20 02:52:44 2008
@@ -68,11 +68,11 @@
GType
g_mount_get_type (void)
{
- static GType mount_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! mount_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo mount_info =
+ const GTypeInfo mount_info =
{
sizeof (GMountIface), /* class_size */
g_mount_base_init, /* base_init */
@@ -84,15 +84,16 @@
0, /* n_preallocs */
NULL
};
-
- mount_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GMount"),
&mount_info, 0);
- g_type_interface_add_prerequisite (mount_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 mount_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gseekable.c
==============================================================================
--- branches/glib-2-16/gio/gseekable.c (original)
+++ branches/glib-2-16/gio/gseekable.c Sun Jul 20 02:52:44 2008
@@ -44,11 +44,11 @@
GType
g_seekable_get_type (void)
{
- static GType seekable_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (!seekable_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo seekable_info =
+ const GTypeInfo seekable_info =
{
sizeof (GSeekableIface), /* class_size */
g_seekable_base_init, /* base_init */
@@ -60,15 +60,16 @@
0, /* n_preallocs */
NULL
};
-
- seekable_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GSeekable"),
&seekable_info, 0);
- g_type_interface_add_prerequisite (seekable_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 seekable_type;
+ return g_define_type_id__volatile;
}
static void
Modified: branches/glib-2-16/gio/gvolume.c
==============================================================================
--- branches/glib-2-16/gio/gvolume.c (original)
+++ branches/glib-2-16/gio/gvolume.c Sun Jul 20 02:52:44 2008
@@ -78,11 +78,11 @@
GType
g_volume_get_type (void)
{
- static GType volume_type = 0;
+ static volatile gsize g_define_type_id__volatile = 0;
- if (! volume_type)
+ if (g_once_init_enter (&g_define_type_id__volatile))
{
- static const GTypeInfo volume_info =
+ const GTypeInfo volume_info =
{
sizeof (GVolumeIface), /* class_size */
g_volume_base_init, /* base_init */
@@ -94,15 +94,16 @@
0, /* n_preallocs */
NULL
};
-
- volume_type =
+ GType g_define_type_id =
g_type_register_static (G_TYPE_INTERFACE, I_("GVolume"),
&volume_info, 0);
- g_type_interface_add_prerequisite (volume_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 volume_type;
+ return g_define_type_id__volatile;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]