mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-05-18 19:51:57 +02:00
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
This commit is contained in:
parent
cb3b591aaa
commit
acb7f6449a
@ -1,3 +1,19 @@
|
|||||||
|
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
|
||||||
|
|
||||||
2008-07-18 Matthias Clasen <mclasen@redhat.com>
|
2008-07-18 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
* gcontenttype.c: Remove debug spew
|
* gcontenttype.c: Remove debug spew
|
||||||
|
@ -46,11 +46,11 @@ static void g_app_info_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_app_info_get_type (void)
|
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 */
|
sizeof (GAppInfoIface), /* class_size */
|
||||||
g_app_info_base_init, /* base_init */
|
g_app_info_base_init, /* base_init */
|
||||||
@ -62,15 +62,16 @@ g_app_info_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
app_info_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GAppInfo"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GAppInfo"),
|
||||||
&app_info_info, 0);
|
&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
|
static void
|
||||||
|
@ -115,11 +115,11 @@ static void g_async_result_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_async_result_get_type (void)
|
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 */
|
sizeof (GAsyncResultIface), /* class_size */
|
||||||
g_async_result_base_init, /* base_init */
|
g_async_result_base_init, /* base_init */
|
||||||
@ -131,15 +131,16 @@ g_async_result_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
async_result_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GAsyncResult"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GAsyncResult"),
|
||||||
&async_result_info, 0);
|
&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
|
static void
|
||||||
|
@ -2502,11 +2502,11 @@ static void g_desktop_app_info_lookup_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_desktop_app_info_lookup_get_type (void)
|
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 */
|
sizeof (GDesktopAppInfoLookupIface), /* class_size */
|
||||||
g_desktop_app_info_lookup_base_init, /* base_init */
|
g_desktop_app_info_lookup_base_init, /* base_init */
|
||||||
@ -2518,15 +2518,16 @@ g_desktop_app_info_lookup_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
desktop_app_info_lookup_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GDesktopAppInfoLookup"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GDesktopAppInfoLookup"),
|
||||||
&desktop_app_info_lookup_info, 0);
|
&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
|
static void
|
||||||
|
15
gio/gdrive.c
15
gio/gdrive.c
@ -61,11 +61,11 @@ static void g_drive_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_drive_get_type (void)
|
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 */
|
sizeof (GDriveIface), /* class_size */
|
||||||
g_drive_base_init, /* base_init */
|
g_drive_base_init, /* base_init */
|
||||||
@ -77,15 +77,16 @@ g_drive_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
drive_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GDrive"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GDrive"),
|
||||||
&drive_info, 0);
|
&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
|
static void
|
||||||
|
15
gio/gfile.c
15
gio/gfile.c
@ -241,11 +241,11 @@ static gboolean g_file_real_copy_finish (GFile
|
|||||||
GType
|
GType
|
||||||
g_file_get_type (void)
|
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 */
|
sizeof (GFileIface), /* class_size */
|
||||||
g_file_base_init, /* base_init */
|
g_file_base_init, /* base_init */
|
||||||
@ -257,15 +257,16 @@ g_file_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
file_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GFile"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GFile"),
|
||||||
&file_info, 0);
|
&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
|
static void
|
||||||
|
15
gio/gicon.c
15
gio/gicon.c
@ -51,11 +51,11 @@ static void g_icon_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_icon_get_type (void)
|
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 */
|
sizeof (GIconIface), /* class_size */
|
||||||
g_icon_base_init, /* base_init */
|
g_icon_base_init, /* base_init */
|
||||||
@ -67,15 +67,16 @@ g_icon_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
icon_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GIcon"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GIcon"),
|
||||||
&icon_info, 0);
|
&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
|
static void
|
||||||
|
@ -55,11 +55,11 @@ static void g_loadable_icon_class_init (gpointer g_c
|
|||||||
GType
|
GType
|
||||||
g_loadable_icon_get_type (void)
|
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 */
|
sizeof (GLoadableIconIface), /* class_size */
|
||||||
g_loadable_icon_base_init, /* base_init */
|
g_loadable_icon_base_init, /* base_init */
|
||||||
@ -71,15 +71,16 @@ g_loadable_icon_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
loadable_icon_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GLoadableIcon"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GLoadableIcon"),
|
||||||
&loadable_icon_info, 0);
|
&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
|
static void
|
||||||
|
15
gio/gmount.c
15
gio/gmount.c
@ -70,11 +70,11 @@ static void g_mount_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_mount_get_type (void)
|
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 */
|
sizeof (GMountIface), /* class_size */
|
||||||
g_mount_base_init, /* base_init */
|
g_mount_base_init, /* base_init */
|
||||||
@ -86,15 +86,16 @@ g_mount_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
mount_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GMount"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GMount"),
|
||||||
&mount_info, 0);
|
&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
|
static void
|
||||||
|
@ -44,11 +44,11 @@ static void g_seekable_base_init (gpointer g_class);
|
|||||||
GType
|
GType
|
||||||
g_seekable_get_type (void)
|
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 */
|
sizeof (GSeekableIface), /* class_size */
|
||||||
g_seekable_base_init, /* base_init */
|
g_seekable_base_init, /* base_init */
|
||||||
@ -60,15 +60,16 @@ g_seekable_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
seekable_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GSeekable"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GSeekable"),
|
||||||
&seekable_info, 0);
|
&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
|
static void
|
||||||
|
@ -80,11 +80,11 @@ static void g_volume_class_init (gpointer g_class,
|
|||||||
GType
|
GType
|
||||||
g_volume_get_type (void)
|
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 */
|
sizeof (GVolumeIface), /* class_size */
|
||||||
g_volume_base_init, /* base_init */
|
g_volume_base_init, /* base_init */
|
||||||
@ -96,15 +96,16 @@ g_volume_get_type (void)
|
|||||||
0, /* n_preallocs */
|
0, /* n_preallocs */
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
GType g_define_type_id =
|
||||||
volume_type =
|
|
||||||
g_type_register_static (G_TYPE_INTERFACE, I_("GVolume"),
|
g_type_register_static (G_TYPE_INTERFACE, I_("GVolume"),
|
||||||
&volume_info, 0);
|
&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
|
static void
|
||||||
|
Loading…
x
Reference in New Issue
Block a user