gobject: use g_once_init_enter_pointer for GType initializers

GType is either an integer or a pointer, so we have to use the _pointer
version here to support architectures such as Morello.

Helps: https://gitlab.gnome.org/GNOME/glib/-/issues/2842
See also: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3578
This commit is contained in:
Alex Richardson
2023-09-12 01:26:21 -07:00
committed by Philip Withnall
parent a1dfecf11f
commit 5ecd3cbe52
10 changed files with 57 additions and 47 deletions

View File

@@ -38,9 +38,9 @@
GType
@enum_name@_get_type (void)
{
static gsize static_g_define_type_id = 0;
static GType static_g_define_type_id = 0;
if (g_once_init_enter (&static_g_define_type_id))
if (g_once_init_enter_pointer (&static_g_define_type_id))
{
static const G@Type@Value values[] = {
/*** END value-header ***/
@@ -54,7 +54,7 @@ GType
};
GType g_define_type_id =
g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
g_once_init_leave (&static_g_define_type_id, g_define_type_id);
g_once_init_leave_pointer (&static_g_define_type_id, g_define_type_id);
}
return static_g_define_type_id;