cleanup
[platform/upstream/glib.git] / gio / gioenumtypes.c.template
index 106922d..e9adc4a 100644 (file)
@@ -1,6 +1,7 @@
 /*** BEGIN file-header ***/
+#include "config.h"
+#include "gioenumtypes.h"
 #include <gio.h>
-#include "gioalias.h"
 
 /*** END file-header ***/
 
 GType
 @enum_name@_get_type (void)
 {
-    static GType etype = 0;
+  static volatile gsize g_define_type_id__volatile = 0;
 
-    if (G_UNLIKELY(etype == 0)) {
-        static const G@Type@Value values[] = {
+  if (g_once_init_enter (&g_define_type_id__volatile))
+    {
+      static const G@Type@Value values[] = {
 /*** END value-header ***/
 
 /*** BEGIN value-production ***/
-            { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
+        { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
 /*** END value-production ***/
 
 /*** BEGIN value-tail ***/
-            { 0, NULL, NULL }
-        };
-        etype = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+        { 0, NULL, NULL }
+      };
+      GType g_define_type_id =
+        g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+      g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
     }
-    return etype;
+
+  return g_define_type_id__volatile;
 }
 
 /*** END value-tail ***/
-
-/*** BEGIN file-tail ***/
-#define __GIO_ENUM_TYPES_C__
-#include "gioaliasdef.c"
-/*** END file-tail ***/