glib/gobject/tests
Thomas Haller 2952cfd7a7 gobject: drop clearing quark_weak_locations from g_object_real_dispose()
In g_object_unref(), we call _object_unref_clear_weak_locations() before
and after dispose() already. At those places it is necessary to do.

Calling it a third time during g_object_real_dispose() seems not useful,
has unnecessary overhead and actually undesirable.

In particular, because g_object_real_dispose() is the implementation for
the virtual function GObject.dispose(). For subclasses that override dispose(),
it's not well defined at which point they should chain up the parent
implementation (for dispose(), I'd argue that usually they chain up at
the end of their own code). If they chain up at the end, this has no
effect.

This only really matters if you try to register GWeakRef during dipose
and/or resurrect the object.

        static void dispose(GObject *object)
        {
            g_weak_ref_set(&global_weak_ref, object);
            global_ref = g_object_ref(object);
            G_OBJECT_CLASS (parent_class)->dispose (object);
        }

the object was resurrected, but g_object_real_dispose() would clear the
weak ref. That is not desirable, nor does it make sense.

Instead, the virtual function dispose() is called from two places, from
g_object_unref() and g_object_run_dispose(). In both cases, it is
ensured that weak locations are cleared *after* dispatching the virtual
function. Don't do it somewhere in the middle from
g_object_real_dispose().
2023-12-30 00:20:17 +01:00
..
performance Initial test of Hurd CI - (run_tests.sh status ignored) 2023-10-18 23:33:04 +00:00
accumulator.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
autoptr.c Add a SPDX LicenseRef for the license historically used for tests 2022-11-02 12:34:19 +00:00
basic-signals.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
basics-gobject.c tests: Fix a non-TAP formatted debug message in the basics-gobject test 2022-06-21 12:50:31 +01:00
binding.c Replace most GObject warnings with criticals 2022-08-09 13:18:47 -05:00
bindinggroup.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
boxed.c Rename G_MARKUP_PARSE_FLAGS_NONE 2022-07-25 22:30:22 +01:00
closure-refcount.c Add a SPDX LicenseRef for the license historically used for tests 2022-11-02 12:34:19 +00:00
closure.c Fix the closure test in continuous 2014-05-30 10:22:35 -04:00
custom-dispatch.c custom-dispatch: Change SPDX-License-Identifier to match license grant 2022-11-02 12:35:45 +00:00
cxx.cpp Add SPDX license headers for LGPL-2.1-or-later to various files 2022-06-01 12:44:23 +01:00
defaultiface.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
deftype.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
deprecated-properties.c gobject: Add a test for deprecated properties 2022-09-21 10:27:55 +01:00
dynamictests.c Add a SPDX LicenseRef for the license historically used for tests 2022-11-02 12:34:19 +00:00
dynamictype.c gtype: Allow g_type_query() to be called on dynamic types 2023-07-30 11:25:42 +03:00
enums.c Use varargs for enum types definition macros 2022-06-30 01:46:54 +01:00
flags.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
genmarshal.py tests: Run processes under test with G_DEBUG=fatal-warnings 2023-11-07 13:51:56 +00:00
gobject-query.py tests: Run processes under test with G_DEBUG=fatal-warnings 2023-11-07 13:51:56 +00:00
ifaceproperties.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
marshalers.list Moving gobject tests from tests/gobjects to gobjects/tests 2022-05-26 19:13:19 +01:00
max-version.c tests: Test that we can include all headers with an old MAX_VERSION 2022-10-27 14:50:48 +01:00
meson.build tests: Verify GParamSpecPool creation 2023-12-19 19:53:48 +00:00
mkenums.py mkenums: Allow , in a character literal 2023-11-21 11:54:42 +00:00
notify-init2.c Add a SPDX LicenseRef for the license historically used for tests 2022-11-02 12:34:19 +00:00
notify-init.c Add a SPDX LicenseRef for the license historically used for tests 2022-11-02 12:34:19 +00:00
object.c testsuite: Make tests not fail in !debug builds 2022-05-28 08:02:16 -04:00
objects-refcount1.c gtype: avoid "-Wcast-align" warning with optimized G_TYPE_CHECK_INSTANCE_CAST() 2022-12-16 20:48:06 +01:00
objects-refcount2.c Moving tests/refcount/ directory to gobject/tests/ 2022-05-26 18:37:35 +01:00
override.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
param.c tests: Add unit for GParamSpecPool 2023-12-19 19:53:48 +00:00
private.c glib: Avoid redefining GLIB_DISABLE_DEPRECATION_WARNINGS 2020-07-27 15:41:09 +01:00
properties-introspection.c tests: Check thread safety of GParamSpecPool 2023-12-19 22:48:03 +00:00
properties-refcount1.c tests: Port GObject tests from g_thread_create() to g_thread_new() 2022-05-26 18:37:35 +01:00
properties-refcount2.c Moving tests/refcount/ directory to gobject/tests/ 2022-05-26 18:37:35 +01:00
properties-refcount3.c tests: Remove various bits of overly-verbose test output 2022-05-31 15:21:46 +01:00
properties-refcount4.c Moving tests/refcount/ directory to gobject/tests/ 2022-05-26 18:37:35 +01:00
properties.c gobject: Always ref-sink variants in g_object_set 2022-10-24 10:47:35 +01:00
qdata.c Add SPDX license headers for LGPL-2.1-or-later to various files 2022-06-01 12:44:23 +01:00
reference.c gobject: drop clearing quark_weak_locations from g_object_real_dispose() 2023-12-30 00:20:17 +01:00
references.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
signal-handler.c tests: Allow signal-handler performance tests to be smoketested 2022-06-21 12:57:33 +01:00
signalgroup.c gsignalgroup: Avoid function call with side effect in g_return_* macro 2023-11-01 10:53:55 +00:00
signals-refcount.c tests: Remove various bits of overly-verbose test output 2022-05-31 15:21:46 +01:00
signals.c gobject: use g_once_init_enter_pointer for GType initializers 2023-10-04 14:50:54 +01:00
singleton.c Merge branch 'more-spdx' into 'main' 2022-07-05 11:06:49 +00:00
taptestrunner.py tests: Add some SPDX license headers 2022-05-17 17:23:34 +01:00
testcommon.h tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
testing.c Merge branch 'more-spdx' into 'main' 2022-07-05 11:06:49 +00:00
testmodule.c tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
testmodule.h tests: Add SPDX license headers automatically 2022-06-01 12:17:28 +01:00
threadtests.c Add a SPDX LicenseRef for the license historically used for tests 2022-11-02 12:34:19 +00:00
type-flags.c gobject: use g_once_init_enter_pointer for GType initializers 2023-10-04 14:50:54 +01:00
type.c tests: Add some more tests for g_type_query() 2023-07-30 13:51:00 +03:00
value.c gvalue: add g_value_steal_string() 2023-11-04 10:40:30 +00:00