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

@@ -1163,9 +1163,9 @@ test_object_set_property (GObject *object,
static GType
test_enum_get_type (void)
{
static gsize define_type_id = 0;
static GType define_type_id = 0;
if (g_once_init_enter (&define_type_id))
if (g_once_init_enter_pointer (&define_type_id))
{
static const GEnumValue values[] = {
{ TEST_ENUM_FOO, "TEST_ENUM_FOO", "foo" },
@@ -1176,7 +1176,7 @@ test_enum_get_type (void)
};
GType type_id = g_enum_register_static ("TestEnum", values);
g_once_init_leave (&define_type_id, type_id);
g_once_init_leave_pointer (&define_type_id, type_id);
}
return define_type_id;
@@ -1185,9 +1185,9 @@ test_enum_get_type (void)
static GType
test_flags_get_type (void)
{
static gsize define_type_id = 0;
static GType define_type_id = 0;
if (g_once_init_enter (&define_type_id))
if (g_once_init_enter_pointer (&define_type_id))
{
static const GFlagsValue values[] = {
{ TEST_FLAGS_NONE, "TEST_FLAGS_NONE", "none" },
@@ -1198,7 +1198,7 @@ test_flags_get_type (void)
};
GType type_id = g_flags_register_static ("TestFlags", values);
g_once_init_leave (&define_type_id, type_id);
g_once_init_leave_pointer (&define_type_id, type_id);
}
return define_type_id;