mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-09 19:06:15 +01:00
gobject: Allow passing %NULL for @data in g_object_remove_toggle_ref
gjs has some situations where it's not always aware of the @data that was passed into g_object_add_toggle_ref, so allow passing %NULL to just match on @notify. Rebased and updated by Nitin Wartkar Closes #817
This commit is contained in:
parent
0c8740dc83
commit
edb40c7171
@ -3319,7 +3319,8 @@ g_object_add_toggle_ref (GObject *object,
|
||||
* @notify: a function to call when this reference is the
|
||||
* last reference to the object, or is no longer
|
||||
* the last reference.
|
||||
* @data: data to pass to @notify
|
||||
* @data: (nullable): data to pass to @notify, or %NULL to
|
||||
* match any toggle refs with the @notify argument.
|
||||
*
|
||||
* Removes a reference added with g_object_add_toggle_ref(). The
|
||||
* reference count of the object is decreased by one.
|
||||
@ -3345,7 +3346,7 @@ g_object_remove_toggle_ref (GObject *object,
|
||||
|
||||
for (i = 0; i < tstack->n_toggle_refs; i++)
|
||||
if (tstack->toggle_refs[i].notify == notify &&
|
||||
tstack->toggle_refs[i].data == data)
|
||||
(tstack->toggle_refs[i].data == data || data == NULL))
|
||||
{
|
||||
found_one = TRUE;
|
||||
tstack->n_toggle_refs -= 1;
|
||||
|
@ -256,7 +256,8 @@ main (int argc,
|
||||
g_assert (object_destroyed == FALSE);
|
||||
|
||||
clear_flags ();
|
||||
g_object_remove_toggle_ref (object, toggle_ref2, GUINT_TO_POINTER (24));
|
||||
/* Check that removing a toggle ref with %NULL data works fine. */
|
||||
g_object_remove_toggle_ref (object, toggle_ref2, NULL);
|
||||
g_assert (toggle_ref1_weakened == FALSE);
|
||||
g_assert (toggle_ref1_strengthened == FALSE);
|
||||
g_assert (toggle_ref2_weakened == FALSE);
|
||||
|
Loading…
Reference in New Issue
Block a user