summaryrefslogtreecommitdiff
path: root/json-glib/json-enum-types.c.in
diff options
context:
space:
mode:
Diffstat (limited to 'json-glib/json-enum-types.c.in')
-rw-r--r--json-glib/json-enum-types.c.in18
1 files changed, 13 insertions, 5 deletions
diff --git a/json-glib/json-enum-types.c.in b/json-glib/json-enum-types.c.in
index 3578c6e..eba4222 100644
--- a/json-glib/json-enum-types.c.in
+++ b/json-glib/json-enum-types.c.in
@@ -3,15 +3,18 @@
/*** END file-header ***/
/*** BEGIN file-production ***/
+
/* enumerations from "@filename@" */
#include "@filename@"
+
/*** END file-production ***/
/*** BEGIN value-header ***/
GType
@enum_name@_get_type(void) {
- static GType etype = 0;
- if (G_UNLIKELY (!etype))
+ static volatile gsize g_enum_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_enum_type_id__volatile))
{
const G@Type@Value values[] = {
/*** END value-header ***/
@@ -23,9 +26,14 @@ GType
/*** BEGIN value-tail ***/
{ 0, NULL, NULL }
};
- etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+ GType g_enum_type_id;
+
+ g_enum_type_id =
+ g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+
+ g_once_init_leave (&g_enum_type_id__volatile, g_enum_type_id);
}
- return etype;
-}
+ return g_enum_type_id__volatile;
+}
/*** END value-tail ***/