From fab561f8d05794329184cd81f9ab9d9d77dcc22a Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Wed, 11 Nov 2020 18:12:22 +0000 Subject: [PATCH 01/29] gobject: Drop use of volatile from get_type() macros MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit http://isvolatileusefulwiththreads.in/c/ It’s possible that the variables here are only marked as volatile because they’re arguments to `g_once_*()`. Those arguments will be modified in a subsequent commit. Signed-off-by: Philip Withnall Helps: #600 Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719] --- docs/reference/gobject/glib-mkenums.xml | 8 ++--- docs/reference/gobject/tut_gtype.xml | 2 +- gio/gioenumtypes.c.template | 8 ++--- gio/tests/gsettings.c | 4 +-- gobject/gbinding.c | 8 ++--- gobject/gboxed.c | 8 ++--- gobject/glib-enumtypes.c.template | 8 ++--- gobject/gsourceclosure.c | 2 +- gobject/gtype.h | 48 ++++++++++++------------- gobject/tests/signals.c | 16 ++++----- 10 files changed, 56 insertions(+), 56 deletions(-) diff --git a/docs/reference/gobject/glib-mkenums.xml b/docs/reference/gobject/glib-mkenums.xml index 2200328ed..ce250a3ff 100644 --- a/docs/reference/gobject/glib-mkenums.xml +++ b/docs/reference/gobject/glib-mkenums.xml @@ -480,9 +480,9 @@ A C source template file will typically look like this: GType @enum_name@_get_type (void) { - static volatile gsize g_@type@_type_id__volatile; + static gsize static_g_@type@_type_id; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_@type@_type_id)) { static const G@Type@Value values[] = { /*** END value-header ***/ @@ -498,9 +498,9 @@ GType GType g_@type@_type_id = g_@type@_register_static (g_intern_static_string ("@EnumName@"), values); - g_once_init_leave (&g_@type@_type_id__volatile, g_@type@_type_id); + g_once_init_leave (&static_g_@type@_type_id, g_@type@_type_id); } - return g_@type@_type_id__volatile; + return static_g_@type@_type_id; } /*** END value-tail ***/ diff --git a/docs/reference/gobject/tut_gtype.xml b/docs/reference/gobject/tut_gtype.xml index 25e37dc48..ee042889d 100644 --- a/docs/reference/gobject/tut_gtype.xml +++ b/docs/reference/gobject/tut_gtype.xml @@ -852,7 +852,7 @@ viewer_editable_default_init (ViewerEditableInterface *iface) GType viewer_editable_get_type (void) { - static volatile gsize type_id = 0; + static gsize type_id = 0; if (g_once_init_enter (&type_id)) { const GTypeInfo info = { sizeof (ViewerEditableInterface), diff --git a/gio/gioenumtypes.c.template b/gio/gioenumtypes.c.template index e9adc4a38..948a01201 100644 --- a/gio/gioenumtypes.c.template +++ b/gio/gioenumtypes.c.template @@ -13,9 +13,9 @@ GType @enum_name@_get_type (void) { - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_define_type_id)) { static const G@Type@Value values[] = { /*** END value-header ***/ @@ -29,10 +29,10 @@ GType }; 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); + g_once_init_leave (&static_g_define_type_id, g_define_type_id); } - return g_define_type_id__volatile; + return static_g_define_type_id; } /*** END value-tail ***/ diff --git a/gio/tests/gsettings.c b/gio/tests/gsettings.c index 2f81ae6c3..179d0fd2f 100644 --- a/gio/tests/gsettings.c +++ b/gio/tests/gsettings.c @@ -1060,7 +1060,7 @@ test_object_set_property (GObject *object, static GType test_enum_get_type (void) { - static volatile gsize define_type_id = 0; + static gsize define_type_id = 0; if (g_once_init_enter (&define_type_id)) { @@ -1082,7 +1082,7 @@ test_enum_get_type (void) static GType test_flags_get_type (void) { - static volatile gsize define_type_id = 0; + static gsize define_type_id = 0; if (g_once_init_enter (&define_type_id)) { diff --git a/gobject/gbinding.c b/gobject/gbinding.c index 78a883075..662d76b3c 100644 --- a/gobject/gbinding.c +++ b/gobject/gbinding.c @@ -120,9 +120,9 @@ GType g_binding_flags_get_type (void) { - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_define_type_id)) { static const GFlagsValue values[] = { { G_BINDING_DEFAULT, "G_BINDING_DEFAULT", "default" }, @@ -133,10 +133,10 @@ g_binding_flags_get_type (void) }; GType g_define_type_id = g_flags_register_static (g_intern_static_string ("GBindingFlags"), values); - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + g_once_init_leave (&static_g_define_type_id, g_define_type_id); } - return g_define_type_id__volatile; + return static_g_define_type_id; } #define G_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_BINDING, GBindingClass)) diff --git a/gobject/gboxed.c b/gobject/gboxed.c index 30ba4e775..194251383 100644 --- a/gobject/gboxed.c +++ b/gobject/gboxed.c @@ -180,19 +180,19 @@ G_DEFINE_BOXED_TYPE (GOptionGroup, g_option_group, g_option_group_ref, g_option_ GType g_strv_get_type (void) { - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_define_type_id)) { GType g_define_type_id = g_boxed_type_register_static (g_intern_static_string ("GStrv"), (GBoxedCopyFunc) g_strdupv, (GBoxedFreeFunc) g_strfreev); - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + g_once_init_leave (&static_g_define_type_id, g_define_type_id); } - return g_define_type_id__volatile; + return static_g_define_type_id; } GType diff --git a/gobject/glib-enumtypes.c.template b/gobject/glib-enumtypes.c.template index b7d36728f..1800ca8af 100644 --- a/gobject/glib-enumtypes.c.template +++ b/gobject/glib-enumtypes.c.template @@ -13,9 +13,9 @@ GType @enum_name@_get_type (void) { - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_define_type_id)) { static const G@Type@Value values[] = { /*** END value-header ***/ @@ -29,10 +29,10 @@ GType }; 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); + g_once_init_leave (&static_g_define_type_id, g_define_type_id); } - return g_define_type_id__volatile; + return static_g_define_type_id; } /*** END value-tail ***/ diff --git a/gobject/gsourceclosure.c b/gobject/gsourceclosure.c index 0d0d2e87c..d1b1ee4b3 100644 --- a/gobject/gsourceclosure.c +++ b/gobject/gsourceclosure.c @@ -32,7 +32,7 @@ G_DEFINE_BOXED_TYPE (GIOChannel, g_io_channel, g_io_channel_ref, g_io_channel_un GType g_io_condition_get_type (void) { - static volatile GType etype = 0; + static GType etype = 0; if (g_once_init_enter (&etype)) { diff --git a/gobject/gtype.h b/gobject/gtype.h index 9de46ac60..666fadb0c 100644 --- a/gobject/gtype.h +++ b/gobject/gtype.h @@ -1727,8 +1727,8 @@ guint g_type_get_type_registration_serial (void); * GType * gtk_gadget_get_type (void) * { - * static volatile gsize g_define_type_id__volatile = 0; - * if (g_once_init_enter (&g_define_type_id__volatile)) + * static gsize static_g_define_type_id = 0; + * if (g_once_init_enter (&static_g_define_type_id)) * { * GType g_define_type_id = * g_type_register_static_simple (GTK_TYPE_WIDGET, @@ -1748,9 +1748,9 @@ guint g_type_get_type_registration_serial (void); * }; * g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, &g_implement_interface_info); * } - * g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + * g_once_init_leave (&static_g_define_type_id, g_define_type_id); * } - * return g_define_type_id__volatile; + * return static_g_define_type_id; * } * ]| * The only pieces which have to be manually provided are the definitions of @@ -1995,17 +1995,17 @@ type_name##_get_instance_private (TypeName *self) \ GType \ type_name##_get_type (void) \ { \ - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; /* Prelude goes here */ /* Added for _G_DEFINE_TYPE_EXTENDED_WITH_PRELUDE */ #define _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \ - if (g_once_init_enter (&g_define_type_id__volatile)) \ + if (g_once_init_enter (&static_g_define_type_id)) \ { \ GType g_define_type_id = type_name##_get_type_once (); \ - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ } \ - return g_define_type_id__volatile; \ + return static_g_define_type_id; \ } /* closes type_name##_get_type() */ \ \ G_GNUC_NO_INLINE \ @@ -2041,8 +2041,8 @@ static void type_name##_default_init (TypeName##Interface *klass); \ GType \ type_name##_get_type (void) \ { \ - static volatile gsize g_define_type_id__volatile = 0; \ - if (g_once_init_enter (&g_define_type_id__volatile)) \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ { \ GType g_define_type_id = \ g_type_register_static_simple (G_TYPE_INTERFACE, \ @@ -2058,9 +2058,9 @@ type_name##_get_type (void) \ #define _G_DEFINE_INTERFACE_EXTENDED_END() \ /* following custom code */ \ } \ - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ } \ - return g_define_type_id__volatile; \ + return static_g_define_type_id; \ } /* closes type_name##_get_type() */ /** @@ -2115,13 +2115,13 @@ static GType type_name##_get_type_once (void); \ GType \ type_name##_get_type (void) \ { \ - static volatile gsize g_define_type_id__volatile = 0; \ - if (g_once_init_enter (&g_define_type_id__volatile)) \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ { \ GType g_define_type_id = type_name##_get_type_once (); \ - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ } \ - return g_define_type_id__volatile; \ + return static_g_define_type_id; \ } \ \ G_GNUC_NO_INLINE \ @@ -2152,13 +2152,13 @@ static GType type_name##_get_type_once (void); \ GType \ type_name##_get_type (void) \ { \ - static volatile gsize g_define_type_id__volatile = 0; \ - if (g_once_init_enter (&g_define_type_id__volatile)) \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ { \ GType g_define_type_id = type_name##_get_type_once (); \ - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ } \ - return g_define_type_id__volatile; \ + return static_g_define_type_id; \ } \ \ G_GNUC_NO_INLINE \ @@ -2205,13 +2205,13 @@ static GType type_name##_get_type_once (void); \ GType \ type_name##_get_type (void) \ { \ - static volatile gsize g_define_type_id__volatile = 0; \ - if (g_once_init_enter (&g_define_type_id__volatile)) \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ { \ GType g_define_type_id = type_name##_get_type_once (); \ - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ } \ - return g_define_type_id__volatile; \ + return static_g_define_type_id; \ } \ \ G_GNUC_NO_INLINE \ diff --git a/gobject/tests/signals.c b/gobject/tests/signals.c index 120f90b5c..ac0ce5102 100644 --- a/gobject/tests/signals.c +++ b/gobject/tests/signals.c @@ -66,9 +66,9 @@ custom_marshal_VOID__INVOCATIONHINT (GClosure *closure, static GType test_enum_get_type (void) { - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_define_type_id)) { static const GEnumValue values[] = { { TEST_ENUM_NEGATIVE, "TEST_ENUM_NEGATIVE", "negative" }, @@ -79,18 +79,18 @@ test_enum_get_type (void) }; GType g_define_type_id = g_enum_register_static (g_intern_static_string ("TestEnum"), values); - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + g_once_init_leave (&static_g_define_type_id, g_define_type_id); } - return g_define_type_id__volatile; + return static_g_define_type_id; } static GType test_unsigned_enum_get_type (void) { - static volatile gsize g_define_type_id__volatile = 0; + static gsize static_g_define_type_id = 0; - if (g_once_init_enter (&g_define_type_id__volatile)) + if (g_once_init_enter (&static_g_define_type_id)) { static const GEnumValue values[] = { { TEST_UNSIGNED_ENUM_FOO, "TEST_UNSIGNED_ENUM_FOO", "foo" }, @@ -99,10 +99,10 @@ test_unsigned_enum_get_type (void) }; GType g_define_type_id = g_enum_register_static (g_intern_static_string ("TestUnsignedEnum"), values); - g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); + g_once_init_leave (&static_g_define_type_id, g_define_type_id); } - return g_define_type_id__volatile; + return static_g_define_type_id; } typedef enum { -- 2.30.1