summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2019-05-21 16:42:05 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2019-05-21 16:42:05 +0000
commit9bbd489f06ed2390dac3808135005a9942aef5ae (patch)
treebbaac8dbc48bcab6af0bf9eaef9d7de09761b248
parent9f739ab135c4976752555a1a582771dbee5b16cb (diff)
parent2a9b3c6a0c4a57ae95959d561414997676c0c32c (diff)
downloadgtk+-9bbd489f06ed2390dac3808135005a9942aef5ae.tar.gz
Merge branch 'mkenums-once' into 'master'
Use g_once for all the mkenums template files Closes #1617 See merge request GNOME/gtk!865
-rw-r--r--gdk/gdkenumtypes.c.template21
-rw-r--r--gtk/gtkprivatetypebuiltins.c.template21
-rw-r--r--gtk/gtktypebuiltins.c.template21
3 files changed, 39 insertions, 24 deletions
diff --git a/gdk/gdkenumtypes.c.template b/gdk/gdkenumtypes.c.template
index 5237d549ab..c5104e0e0d 100644
--- a/gdk/gdkenumtypes.c.template
+++ b/gdk/gdkenumtypes.c.template
@@ -12,21 +12,26 @@
GType
@enum_name@_get_type (void)
{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const G@Type@Value values[] = {
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ 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 ***/
diff --git a/gtk/gtkprivatetypebuiltins.c.template b/gtk/gtkprivatetypebuiltins.c.template
index 44af1bc9dd..d7961be8ef 100644
--- a/gtk/gtkprivatetypebuiltins.c.template
+++ b/gtk/gtkprivatetypebuiltins.c.template
@@ -14,21 +14,26 @@
GType
_@enum_name@_get_type (void)
{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const G@Type@Value values[] = {
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ 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 ***/
diff --git a/gtk/gtktypebuiltins.c.template b/gtk/gtktypebuiltins.c.template
index 38aaaccbd6..9a5a360f09 100644
--- a/gtk/gtktypebuiltins.c.template
+++ b/gtk/gtktypebuiltins.c.template
@@ -13,21 +13,26 @@
GType
@enum_name@_get_type (void)
{
- static GType etype = 0;
- if (G_UNLIKELY(etype == 0)) {
- static const G@Type@Value values[] = {
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ 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 ***/