| From fab561f8d05794329184cd81f9ab9d9d77dcc22a Mon Sep 17 00:00:00 2001 |
| From: Philip Withnall <pwithnall@endlessos.org> |
| 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 <pwithnall@endlessos.org> |
| |
| 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 |
| |