From: Christian Hergert Date: Mon, 2 May 2022 22:33:34 +0000 (-0700) Subject: actionmuxer: check for observer before unregistering X-Git-Tag: archive/raspbian/4.8.3+ds-2+rpi1~3^2~20^2~4^2~203^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=0382e3b46c1e68b8daf61baa3873fc1d50c56192;p=gtk4.git actionmuxer: check for observer before unregistering This can happen if the group can be resolved even when doing the initial registration of an action as observer will not yet be in the GSList of watchers (and therefore has no weak references). Fixes a warning like the following: g_object_weak_unref: couldn't find weak ref --- diff --git a/gtk/gtkactionmuxer.c b/gtk/gtkactionmuxer.c index 60ee06dc58..94f734ca91 100644 --- a/gtk/gtkactionmuxer.c +++ b/gtk/gtkactionmuxer.c @@ -991,13 +991,15 @@ gtk_action_muxer_unregister_observer (GtkActionObservable *observable, GtkActionObserver *observer) { GtkActionMuxer *muxer = GTK_ACTION_MUXER (observable); - Action *action; + Action *action = find_observers (muxer, name); - action = find_observers (muxer, name); if (action) { - g_object_weak_unref (G_OBJECT (observer), gtk_action_muxer_weak_notify, action); - gtk_action_muxer_unregister_internal (action, observer); + if (g_slist_find (action->watchers, observer) != NULL) + { + g_object_weak_unref (G_OBJECT (observer), gtk_action_muxer_weak_notify, action); + gtk_action_muxer_unregister_internal (action, observer); + } } }