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

@@ -66,9 +66,9 @@ custom_marshal_VOID__INVOCATIONHINT (GClosure *closure,
static GType
test_enum_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 GEnumValue values[] = {
{ TEST_ENUM_NEGATIVE, "TEST_ENUM_NEGATIVE", "negative" },
@@ -79,7 +79,7 @@ test_enum_get_type (void)
};
GType g_define_type_id =
g_enum_register_static (g_intern_static_string ("TestEnum"), 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;
@@ -88,9 +88,9 @@ test_enum_get_type (void)
static GType
test_unsigned_enum_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 GEnumValue values[] = {
{ TEST_UNSIGNED_ENUM_FOO, "TEST_UNSIGNED_ENUM_FOO", "foo" },
@@ -99,7 +99,7 @@ test_unsigned_enum_get_type (void)
};
GType g_define_type_id =
g_enum_register_static (g_intern_static_string ("TestUnsignedEnum"), 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;