mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 11:26:16 +01:00
gtimezone: Tidy up UTC timezone creation
Move the separate function inline using g_once_init_{enter,leave}(), rather than g_once(). This marginally improves performance, taking 0.39s to create 10000000 UTC timezones, rather than 0.43s previously. (Who cares?) Follow-up to !1105. Signed-off-by: Philip Withnall <withnall@endlessm.com>
This commit is contained in:
parent
73d557981d
commit
a8ef5fdf8a
@ -1676,20 +1676,19 @@ g_time_zone_new (const gchar *identifier)
|
||||
*
|
||||
* Since: 2.26
|
||||
**/
|
||||
static gpointer
|
||||
g_time_zone_utc_init (gpointer data)
|
||||
{
|
||||
return g_time_zone_new ("UTC");
|
||||
}
|
||||
|
||||
GTimeZone *
|
||||
g_time_zone_new_utc (void)
|
||||
{
|
||||
static GOnce utc_once = G_ONCE_INIT;
|
||||
static GTimeZone *utc = NULL;
|
||||
static gsize initialised;
|
||||
|
||||
g_once (&utc_once, g_time_zone_utc_init, NULL);
|
||||
if (g_once_init_enter (&initialised))
|
||||
{
|
||||
utc = g_time_zone_new ("UTC");
|
||||
g_once_init_leave (&initialised, TRUE);
|
||||
}
|
||||
|
||||
return g_time_zone_ref ((GTimeZone *)utc_once.retval);
|
||||
return g_time_zone_ref (utc);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user