blob: 48521865209b4dc3d31896a9e0fd413cfad1c589 [file] [log] [blame]
Andrew Geissler95ac1b82021-03-31 14:34:31 -05001From fab561f8d05794329184cd81f9ab9d9d77dcc22a Mon Sep 17 00:00:00 2001
2From: Philip Withnall <pwithnall@endlessos.org>
3Date: Wed, 11 Nov 2020 18:12:22 +0000
4Subject: [PATCH 01/29] gobject: Drop use of volatile from get_type() macros
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9http://isvolatileusefulwiththreads.in/c/
10
11Its possible that the variables here are only marked as volatile
12because theyre arguments to `g_once_*()`. Those arguments will be
13modified in a subsequent commit.
14
15Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
16
17Helps: #600
18Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719]
19---
20 docs/reference/gobject/glib-mkenums.xml | 8 ++---
21 docs/reference/gobject/tut_gtype.xml | 2 +-
22 gio/gioenumtypes.c.template | 8 ++---
23 gio/tests/gsettings.c | 4 +--
24 gobject/gbinding.c | 8 ++---
25 gobject/gboxed.c | 8 ++---
26 gobject/glib-enumtypes.c.template | 8 ++---
27 gobject/gsourceclosure.c | 2 +-
28 gobject/gtype.h | 48 ++++++++++++-------------
29 gobject/tests/signals.c | 16 ++++-----
30 10 files changed, 56 insertions(+), 56 deletions(-)
31
32diff --git a/docs/reference/gobject/glib-mkenums.xml b/docs/reference/gobject/glib-mkenums.xml
33index 2200328ed..ce250a3ff 100644
34--- a/docs/reference/gobject/glib-mkenums.xml
35+++ b/docs/reference/gobject/glib-mkenums.xml
36@@ -480,9 +480,9 @@ A C source template file will typically look like this:
37 GType
38 @enum_name@_get_type (void)
39 {
40- static volatile gsize g_@type@_type_id__volatile;
41+ static gsize static_g_@type@_type_id;
42
43- if (g_once_init_enter (&amp;g_define_type_id__volatile))
44+ if (g_once_init_enter (&amp;static_g_@type@_type_id))
45 {
46 static const G@Type@Value values[] = {
47 /*** END value-header ***/
48@@ -498,9 +498,9 @@ GType
49 GType g_@type@_type_id =
50 g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
51
52- g_once_init_leave (&amp;g_@type@_type_id__volatile, g_@type@_type_id);
53+ g_once_init_leave (&amp;static_g_@type@_type_id, g_@type@_type_id);
54 }
55- return g_@type@_type_id__volatile;
56+ return static_g_@type@_type_id;
57 }
58
59 /*** END value-tail ***/
60diff --git a/docs/reference/gobject/tut_gtype.xml b/docs/reference/gobject/tut_gtype.xml
61index 25e37dc48..ee042889d 100644
62--- a/docs/reference/gobject/tut_gtype.xml
63+++ b/docs/reference/gobject/tut_gtype.xml
64@@ -852,7 +852,7 @@ viewer_editable_default_init (ViewerEditableInterface *iface)
65 GType
66 viewer_editable_get_type (void)
67 {
68- static volatile gsize type_id = 0;
69+ static gsize type_id = 0;
70 if (g_once_init_enter (&amp;type_id)) {
71 const GTypeInfo info = {
72 sizeof (ViewerEditableInterface),
73diff --git a/gio/gioenumtypes.c.template b/gio/gioenumtypes.c.template
74index e9adc4a38..948a01201 100644
75--- a/gio/gioenumtypes.c.template
76+++ b/gio/gioenumtypes.c.template
77@@ -13,9 +13,9 @@
78 GType
79 @enum_name@_get_type (void)
80 {
81- static volatile gsize g_define_type_id__volatile = 0;
82+ static gsize static_g_define_type_id = 0;
83
84- if (g_once_init_enter (&g_define_type_id__volatile))
85+ if (g_once_init_enter (&static_g_define_type_id))
86 {
87 static const G@Type@Value values[] = {
88 /*** END value-header ***/
89@@ -29,10 +29,10 @@ GType
90 };
91 GType g_define_type_id =
92 g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
93- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
94+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
95 }
96
97- return g_define_type_id__volatile;
98+ return static_g_define_type_id;
99 }
100
101 /*** END value-tail ***/
102diff --git a/gio/tests/gsettings.c b/gio/tests/gsettings.c
103index 2f81ae6c3..179d0fd2f 100644
104--- a/gio/tests/gsettings.c
105+++ b/gio/tests/gsettings.c
106@@ -1060,7 +1060,7 @@ test_object_set_property (GObject *object,
107 static GType
108 test_enum_get_type (void)
109 {
110- static volatile gsize define_type_id = 0;
111+ static gsize define_type_id = 0;
112
113 if (g_once_init_enter (&define_type_id))
114 {
115@@ -1082,7 +1082,7 @@ test_enum_get_type (void)
116 static GType
117 test_flags_get_type (void)
118 {
119- static volatile gsize define_type_id = 0;
120+ static gsize define_type_id = 0;
121
122 if (g_once_init_enter (&define_type_id))
123 {
124diff --git a/gobject/gbinding.c b/gobject/gbinding.c
125index 78a883075..662d76b3c 100644
126--- a/gobject/gbinding.c
127+++ b/gobject/gbinding.c
128@@ -120,9 +120,9 @@
129 GType
130 g_binding_flags_get_type (void)
131 {
132- static volatile gsize g_define_type_id__volatile = 0;
133+ static gsize static_g_define_type_id = 0;
134
135- if (g_once_init_enter (&g_define_type_id__volatile))
136+ if (g_once_init_enter (&static_g_define_type_id))
137 {
138 static const GFlagsValue values[] = {
139 { G_BINDING_DEFAULT, "G_BINDING_DEFAULT", "default" },
140@@ -133,10 +133,10 @@ g_binding_flags_get_type (void)
141 };
142 GType g_define_type_id =
143 g_flags_register_static (g_intern_static_string ("GBindingFlags"), values);
144- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
145+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
146 }
147
148- return g_define_type_id__volatile;
149+ return static_g_define_type_id;
150 }
151
152 #define G_BINDING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), G_TYPE_BINDING, GBindingClass))
153diff --git a/gobject/gboxed.c b/gobject/gboxed.c
154index 30ba4e775..194251383 100644
155--- a/gobject/gboxed.c
156+++ b/gobject/gboxed.c
157@@ -180,19 +180,19 @@ G_DEFINE_BOXED_TYPE (GOptionGroup, g_option_group, g_option_group_ref, g_option_
158 GType
159 g_strv_get_type (void)
160 {
161- static volatile gsize g_define_type_id__volatile = 0;
162+ static gsize static_g_define_type_id = 0;
163
164- if (g_once_init_enter (&g_define_type_id__volatile))
165+ if (g_once_init_enter (&static_g_define_type_id))
166 {
167 GType g_define_type_id =
168 g_boxed_type_register_static (g_intern_static_string ("GStrv"),
169 (GBoxedCopyFunc) g_strdupv,
170 (GBoxedFreeFunc) g_strfreev);
171
172- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
173+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
174 }
175
176- return g_define_type_id__volatile;
177+ return static_g_define_type_id;
178 }
179
180 GType
181diff --git a/gobject/glib-enumtypes.c.template b/gobject/glib-enumtypes.c.template
182index b7d36728f..1800ca8af 100644
183--- a/gobject/glib-enumtypes.c.template
184+++ b/gobject/glib-enumtypes.c.template
185@@ -13,9 +13,9 @@
186 GType
187 @enum_name@_get_type (void)
188 {
189- static volatile gsize g_define_type_id__volatile = 0;
190+ static gsize static_g_define_type_id = 0;
191
192- if (g_once_init_enter (&g_define_type_id__volatile))
193+ if (g_once_init_enter (&static_g_define_type_id))
194 {
195 static const G@Type@Value values[] = {
196 /*** END value-header ***/
197@@ -29,10 +29,10 @@ GType
198 };
199 GType g_define_type_id =
200 g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
201- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
202+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
203 }
204
205- return g_define_type_id__volatile;
206+ return static_g_define_type_id;
207 }
208
209 /*** END value-tail ***/
210diff --git a/gobject/gsourceclosure.c b/gobject/gsourceclosure.c
211index 0d0d2e87c..d1b1ee4b3 100644
212--- a/gobject/gsourceclosure.c
213+++ b/gobject/gsourceclosure.c
214@@ -32,7 +32,7 @@ G_DEFINE_BOXED_TYPE (GIOChannel, g_io_channel, g_io_channel_ref, g_io_channel_un
215 GType
216 g_io_condition_get_type (void)
217 {
218- static volatile GType etype = 0;
219+ static GType etype = 0;
220
221 if (g_once_init_enter (&etype))
222 {
223diff --git a/gobject/gtype.h b/gobject/gtype.h
224index 9de46ac60..666fadb0c 100644
225--- a/gobject/gtype.h
226+++ b/gobject/gtype.h
227@@ -1727,8 +1727,8 @@ guint g_type_get_type_registration_serial (void);
228 * GType
229 * gtk_gadget_get_type (void)
230 * {
231- * static volatile gsize g_define_type_id__volatile = 0;
232- * if (g_once_init_enter (&g_define_type_id__volatile))
233+ * static gsize static_g_define_type_id = 0;
234+ * if (g_once_init_enter (&static_g_define_type_id))
235 * {
236 * GType g_define_type_id =
237 * g_type_register_static_simple (GTK_TYPE_WIDGET,
238@@ -1748,9 +1748,9 @@ guint g_type_get_type_registration_serial (void);
239 * };
240 * g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, &g_implement_interface_info);
241 * }
242- * g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
243+ * g_once_init_leave (&static_g_define_type_id, g_define_type_id);
244 * }
245- * return g_define_type_id__volatile;
246+ * return static_g_define_type_id;
247 * }
248 * ]|
249 * The only pieces which have to be manually provided are the definitions of
250@@ -1995,17 +1995,17 @@ type_name##_get_instance_private (TypeName *self) \
251 GType \
252 type_name##_get_type (void) \
253 { \
254- static volatile gsize g_define_type_id__volatile = 0;
255+ static gsize static_g_define_type_id = 0;
256 /* Prelude goes here */
257
258 /* Added for _G_DEFINE_TYPE_EXTENDED_WITH_PRELUDE */
259 #define _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \
260- if (g_once_init_enter (&g_define_type_id__volatile)) \
261+ if (g_once_init_enter (&static_g_define_type_id)) \
262 { \
263 GType g_define_type_id = type_name##_get_type_once (); \
264- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
265+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
266 } \
267- return g_define_type_id__volatile; \
268+ return static_g_define_type_id; \
269 } /* closes type_name##_get_type() */ \
270 \
271 G_GNUC_NO_INLINE \
272@@ -2041,8 +2041,8 @@ static void type_name##_default_init (TypeName##Interface *klass); \
273 GType \
274 type_name##_get_type (void) \
275 { \
276- static volatile gsize g_define_type_id__volatile = 0; \
277- if (g_once_init_enter (&g_define_type_id__volatile)) \
278+ static gsize static_g_define_type_id = 0; \
279+ if (g_once_init_enter (&static_g_define_type_id)) \
280 { \
281 GType g_define_type_id = \
282 g_type_register_static_simple (G_TYPE_INTERFACE, \
283@@ -2058,9 +2058,9 @@ type_name##_get_type (void) \
284 #define _G_DEFINE_INTERFACE_EXTENDED_END() \
285 /* following custom code */ \
286 } \
287- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
288+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
289 } \
290- return g_define_type_id__volatile; \
291+ return static_g_define_type_id; \
292 } /* closes type_name##_get_type() */
293
294 /**
295@@ -2115,13 +2115,13 @@ static GType type_name##_get_type_once (void); \
296 GType \
297 type_name##_get_type (void) \
298 { \
299- static volatile gsize g_define_type_id__volatile = 0; \
300- if (g_once_init_enter (&g_define_type_id__volatile)) \
301+ static gsize static_g_define_type_id = 0; \
302+ if (g_once_init_enter (&static_g_define_type_id)) \
303 { \
304 GType g_define_type_id = type_name##_get_type_once (); \
305- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
306+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
307 } \
308- return g_define_type_id__volatile; \
309+ return static_g_define_type_id; \
310 } \
311 \
312 G_GNUC_NO_INLINE \
313@@ -2152,13 +2152,13 @@ static GType type_name##_get_type_once (void); \
314 GType \
315 type_name##_get_type (void) \
316 { \
317- static volatile gsize g_define_type_id__volatile = 0; \
318- if (g_once_init_enter (&g_define_type_id__volatile)) \
319+ static gsize static_g_define_type_id = 0; \
320+ if (g_once_init_enter (&static_g_define_type_id)) \
321 { \
322 GType g_define_type_id = type_name##_get_type_once (); \
323- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
324+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
325 } \
326- return g_define_type_id__volatile; \
327+ return static_g_define_type_id; \
328 } \
329 \
330 G_GNUC_NO_INLINE \
331@@ -2205,13 +2205,13 @@ static GType type_name##_get_type_once (void); \
332 GType \
333 type_name##_get_type (void) \
334 { \
335- static volatile gsize g_define_type_id__volatile = 0; \
336- if (g_once_init_enter (&g_define_type_id__volatile)) \
337+ static gsize static_g_define_type_id = 0; \
338+ if (g_once_init_enter (&static_g_define_type_id)) \
339 { \
340 GType g_define_type_id = type_name##_get_type_once (); \
341- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
342+ g_once_init_leave (&static_g_define_type_id, g_define_type_id); \
343 } \
344- return g_define_type_id__volatile; \
345+ return static_g_define_type_id; \
346 } \
347 \
348 G_GNUC_NO_INLINE \
349diff --git a/gobject/tests/signals.c b/gobject/tests/signals.c
350index 120f90b5c..ac0ce5102 100644
351--- a/gobject/tests/signals.c
352+++ b/gobject/tests/signals.c
353@@ -66,9 +66,9 @@ custom_marshal_VOID__INVOCATIONHINT (GClosure *closure,
354 static GType
355 test_enum_get_type (void)
356 {
357- static volatile gsize g_define_type_id__volatile = 0;
358+ static gsize static_g_define_type_id = 0;
359
360- if (g_once_init_enter (&g_define_type_id__volatile))
361+ if (g_once_init_enter (&static_g_define_type_id))
362 {
363 static const GEnumValue values[] = {
364 { TEST_ENUM_NEGATIVE, "TEST_ENUM_NEGATIVE", "negative" },
365@@ -79,18 +79,18 @@ test_enum_get_type (void)
366 };
367 GType g_define_type_id =
368 g_enum_register_static (g_intern_static_string ("TestEnum"), values);
369- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
370+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
371 }
372
373- return g_define_type_id__volatile;
374+ return static_g_define_type_id;
375 }
376
377 static GType
378 test_unsigned_enum_get_type (void)
379 {
380- static volatile gsize g_define_type_id__volatile = 0;
381+ static gsize static_g_define_type_id = 0;
382
383- if (g_once_init_enter (&g_define_type_id__volatile))
384+ if (g_once_init_enter (&static_g_define_type_id))
385 {
386 static const GEnumValue values[] = {
387 { TEST_UNSIGNED_ENUM_FOO, "TEST_UNSIGNED_ENUM_FOO", "foo" },
388@@ -99,10 +99,10 @@ test_unsigned_enum_get_type (void)
389 };
390 GType g_define_type_id =
391 g_enum_register_static (g_intern_static_string ("TestUnsignedEnum"), values);
392- g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
393+ g_once_init_leave (&static_g_define_type_id, g_define_type_id);
394 }
395
396- return g_define_type_id__volatile;
397+ return static_g_define_type_id;
398 }
399
400 typedef enum {
401--
4022.30.1
403