glib/gobject
Thomas Haller 7777f3bdbe gsignal: let g_clear_signal_handler() evaluate argument only once
Preferably macros behave function-like to minimize surprises. That
means for example that they evaluate all arguments exactly once.

Rework g_clear_signal_handler() to assign the macro parameters
to auto variables so they are accessed exactly once.

Also, drop the static assert for the size of (*handler_id_ptr).
As we now assign to a "gulong *" pointer, the compiler already
checks the types. In fact, the check is now stricter than before.
Previously it would have allowed a pointer to a "signed long".
This is a change in behavior of the macro and the stricter compile
check could cause a build failure with broken code.

Also, clear the handler id first, before calling
g_signal_handler_disconnect(). Disconnecting a signal invokes the
destroy notify, which can have side effects. It just feels cleaner
to first reset the *_handler_id_ptr, before those side effects
can happen. Of course, in practice it makes little difference.
2021-02-01 09:45:16 +01:00
..
tests mkenums: Support public/private trigraphs again 2021-01-10 20:51:54 +01:00
gatomicarray.c gatomicarray: suppress valgrind memory leak warnings 2020-11-24 08:10:58 -06:00
gatomicarray.h gatomicarray: Drop volatile qualifier from GAtomicArray API 2020-11-20 14:40:19 +00:00
gbinding.c Handle the case of g_object_run_dispose() in GBinding 2020-12-08 18:41:27 +02:00
gbinding.h Deprecate g_binding_get_source() and get_target() in favour of dup_source() and dup_target() 2020-11-26 19:51:56 +02:00
gboxed.c gobject: Drop use of volatile from get_type() macros 2020-11-20 14:40:19 +00:00
gboxed.h gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gclosure.c gobject: Drop unnecessary volatile qualifiers from internal variables 2020-11-20 14:40:19 +00:00
gclosure.h gobject: Drop unnecessary volatile qualifiers from internal variables 2020-11-20 14:40:19 +00:00
genums.c genums: Add missing (transfer) and (nullable) return annotations 2020-12-11 23:48:35 +00:00
genums.h gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
glib-enumtypes.c.template gobject: Drop use of volatile from get_type() macros 2020-11-20 14:40:19 +00:00
glib-enumtypes.h.template build: Rename gobjectenumtypes.[ch] to glib-enumtypes.[ch] 2019-03-04 11:12:59 +00:00
glib-genmarshal.in glib-genmarshal: Avoid a param ref for static param valist arguments 2019-06-18 11:59:11 +01:00
glib-mkenums.in mkenums: Support public/private trigraphs again 2021-01-10 20:51:54 +01:00
glib-types.h Add boxing for GTree 2020-10-07 11:00:11 +01:00
gmarshal.c minor typos in the documentation (a/an) 2019-08-24 19:14:05 +00:00
gmarshal.h gmarshal: Move marshaller documentation comments to above functions 2019-03-04 12:33:17 +00:00
gobject_gdb.py py: Various flake8 cleanups 2020-11-17 15:50:07 +00:00
gobject_probes.d Add missing semicolons to gobject_probes.d 2012-10-15 19:48:44 -04:00
gobject_trace.h build: Disable dtrace probes under static analysis 2019-09-05 14:16:58 +01:00
gobject-autocleanups.h gobject: Add g_autoptr() support for GTypeClass, GEnumClass, GFlagsClass 2018-05-15 15:38:33 +01:00
gobject-query.c Spelling: fix spelling of specify 2018-09-25 14:34:48 +01:00
gobject.c Fix the transfer annotations for GClosure constructors 2021-01-19 11:36:01 +02:00
gobject.h Clarify in g_object_weak_ref() docs that the callback is called during disposing and not finalizing 2020-12-08 18:09:50 +02:00
gobject.rc.in meson: build Windows resource files 2018-01-04 22:19:30 +01:00
gobject.stp.in glib: Namespace global tapset variables by soname 2016-11-23 10:50:39 +00:00
gobjectnotifyqueue.c gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gparam.c Merge branch '2227-gobject-annotation-fixes' into 'master' 2021-01-19 11:35:15 +00:00
gparam.h gobject: Add g_{param_spec,signal}_is_valid_name() functions 2020-03-04 14:46:28 +00:00
gparamspecs.c glib: Avoid redefining GLIB_DISABLE_DEPRECATION_WARNINGS 2020-07-27 15:41:09 +01:00
gparamspecs.h tree: Fix various typos and outdated terminology 2020-06-12 15:01:08 +01:00
gsignal.c gsignal: use stack allocate temporary buffer in g_signal_new_valist() 2021-02-01 09:43:29 +01:00
gsignal.h gsignal: let g_clear_signal_handler() evaluate argument only once 2021-02-01 09:45:16 +01:00
gsourceclosure.c gobject: Drop use of volatile from get_type() macros 2020-11-20 14:40:19 +00:00
gsourceclosure.h gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gtype-private.h Use the GObject hole on 64bit arches for some flags to improve performance 2019-09-02 15:48:32 +02:00
gtype.c Fix signedness warning in gobject/gtype.c:iface_node_has_available_offset_L() 2020-12-16 10:56:24 +01:00
gtype.h gtype: Improve formatting of GType documentation 2021-01-20 15:42:55 +00:00
gtypemodule.c Fix missing initializer warning in gobject/gtypemodule.c:g_type_module_get_type() 2020-12-16 10:56:32 +01:00
gtypemodule.h gtypemodule: Cast *_init functions to void(*)(void) first 2019-01-25 11:29:05 +00:00
gtypeplugin.c Fix missing initializer warning in gobject/gtypeplugin.c:g_type_plugin_get_type() 2020-12-16 10:56:32 +01:00
gtypeplugin.h gobject: Standardise on the term ‘instantiatable’ 2020-11-02 17:22:01 +00:00
gvalue.c value: Allow automatic transforms to/from interfaces 2020-11-02 17:36:18 +00:00
gvalue.h gvalue: Do copy non-interned strings 2020-06-23 10:30:55 +00:00
gvaluearray.c gvaluearray: Mark the whole of GValueArray as deprecated 2019-03-15 11:09:36 +00:00
gvaluearray.h Annotate various types and macros as deprecated 2019-05-30 10:39:11 +01:00
gvaluecollector.h tree: Fix various typos and outdated terminology 2020-06-12 15:01:08 +01:00
gvaluetransform.c gobject/: LGPLv2+ -> LGPLv2.1+ 2017-05-24 11:58:19 +02:00
gvaluetypes.c gvalue: Do copy non-interned strings 2020-06-23 10:30:55 +00:00
gvaluetypes.h GValue: Add interned string support 2020-05-19 17:52:55 +02:00
libgobject-gdb.py.in Rename gdb macros with _gdb suffix to avoid ns clashes 2016-05-23 10:52:10 -04:00
meson.build Meson: Override every dependency glib provides 2020-04-05 00:34:04 -04:00