glib/gobject
Sebastian Dröge e82eb490fe Handle the case of g_object_run_dispose() in GBinding
When this is called on the source or target, the weak notify of the
corresponding object is called without the GWeakRef being cleared.
See https://gitlab.gnome.org/GNOME/glib/-/issues/2266 for that issue.

This means that a strong reference to these zombie objects can be
retrieved from the GWeakRefs and the previous assumption that this can't
happen was wrong. Remove the assertion for that accordingly and handle
this case.

Specifically, all signal handlers and weak notifies of the object are
already gone and must not be disconnected/removed a second time, or
otherwise memory corruption would be caused. Instead just set the
GWeakRef to NULL and handle it otherwise as if the GWeakRef didn't give
a strong reference to begin with.

Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/2265
2020-12-08 18:41:27 +02:00
..
tests Deprecate g_binding_get_source() and get_target() in favour of dup_source() and dup_target() 2020-11-26 19:51:56 +02: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 gobject: Handle runtime checks as such 2020-05-20 17:37:46 +02: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 glib-mkenums: allow optional 'since' tag 2020-05-14 17:00:54 +02: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 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.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 tree: Fix various typos and outdated terminology 2020-06-12 15:01:08 +01: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: Plug g_signal_connect_object leak 2020-10-13 09:49:29 -04:00
gsignal.h gobject: Add g_{param_spec,signal}_is_valid_name() functions 2020-03-04 14:46:28 +00: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 Merge branch 'fix_extra_warnings' into 'master' 2020-11-24 15:37:21 +00:00
gtype.h gobject: Drop use of volatile from get_type() macros 2020-11-20 14:40:19 +00:00
gtypemodule.c all: Remove trailing newlines from g_message()/g_warning()/g_error()s 2018-04-27 16:46:19 +01:00
gtypemodule.h gtypemodule: Cast *_init functions to void(*)(void) first 2019-01-25 11:29:05 +00:00
gtypeplugin.c gobject: Standardise on the term ‘instantiatable’ 2020-11-02 17:22:01 +00: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