Use g_once_init_{enter,leave}_pointer where appropriate

This should not result in any functional changes, but will eventually
allow glib to be functional on CHERI-enabled systems such as Morello.

Helps: https://gitlab.gnome.org/GNOME/glib/-/issues/2842
This commit is contained in:
Alex Richardson
2023-09-11 23:59:52 -07:00
committed by Philip Withnall
parent 726eca7c89
commit a1dfecf11f
25 changed files with 81 additions and 86 deletions

View File

@@ -500,11 +500,11 @@ unalias_lang (char *lang)
char *p;
int i;
if (g_once_init_enter (&alias_table))
if (g_once_init_enter_pointer (&alias_table))
{
GHashTable *table = g_hash_table_new (g_str_hash, g_str_equal);
read_aliases ("/usr/share/locale/locale.alias", table);
g_once_init_leave (&alias_table, table);
g_once_init_leave_pointer (&alias_table, table);
}
i = 0;

View File

@@ -815,7 +815,7 @@ g_main_context_default (void)
{
static GMainContext *default_main_context = NULL;
if (g_once_init_enter (&default_main_context))
if (g_once_init_enter_pointer (&default_main_context))
{
GMainContext *context;
@@ -828,7 +828,7 @@ g_main_context_default (void)
g_print ("global-default main context=%p\n", context);
#endif
g_once_init_leave (&default_main_context, context);
g_once_init_leave_pointer (&default_main_context, context);
}
return default_main_context;

View File

@@ -1102,10 +1102,10 @@ g_test_log (GTestLogType lbit,
unsigned subtest_level;
gdouble timing;
if (g_once_init_enter (&g_default_print_func))
if (g_once_init_enter_pointer (&g_default_print_func))
{
g_once_init_leave (&g_default_print_func,
g_set_print_handler (g_test_print_handler));
g_once_init_leave_pointer (&g_default_print_func,
g_set_print_handler (g_test_print_handler));
g_assert_nonnull (g_default_print_func);
}

View File

@@ -663,7 +663,7 @@ g_get_user_database_entry (void)
{
static UserDatabaseEntry *entry;
if (g_once_init_enter (&entry))
if (g_once_init_enter_pointer (&entry))
{
static UserDatabaseEntry e;
@@ -787,7 +787,7 @@ g_get_user_database_entry (void)
if (!e.real_name)
e.real_name = g_strdup ("Unknown");
g_once_init_leave (&entry, &e);
g_once_init_leave_pointer (&entry, &e);
}
return entry;
@@ -1065,7 +1065,7 @@ g_get_host_name (void)
{
static gchar *hostname;
if (g_once_init_enter (&hostname))
if (g_once_init_enter_pointer (&hostname))
{
gboolean failed;
gchar *utmp = NULL;
@@ -1122,7 +1122,7 @@ g_get_host_name (void)
failed = TRUE;
#endif
g_once_init_leave (&hostname, failed ? g_strdup ("localhost") : utmp);
g_once_init_leave_pointer (&hostname, failed ? g_strdup ("localhost") : utmp);
}
return hostname;

View File

@@ -199,8 +199,8 @@ test_once_init_string (void)
g_test_summary ("Test g_once_init_{enter,leave}() usage with a string");
if (g_once_init_enter (&val))
g_once_init_leave (&val, "foo");
if (g_once_init_enter_pointer (&val))
g_once_init_leave_pointer (&val, "foo");
g_assert_cmpstr (val, ==, "foo");
}

View File

@@ -71,14 +71,14 @@ initializer1 (void)
static gpointer
initializer2 (void)
{
static gsize initialized = 0;
if (g_once_init_enter (&initialized))
static void *initialized = NULL;
if (g_once_init_enter_pointer (&initialized))
{
void *pointer_value = &dummy_value;
assert_singleton_execution2 ();
g_once_init_leave (&initialized, (gsize) pointer_value);
g_once_init_leave_pointer (&initialized, pointer_value);
}
return (void*) initialized;
return initialized;
}
static void