diff --git a/gi/object.cpp b/gi/object.cpp index af9dec4a501dbb0163bb2ce342c6f800e450d075..3223346281c7e7af8ad9f71ecdeeabc8362ce5b1 100644 --- a/gi/object.cpp +++ b/gi/object.cpp @@ -971,7 +971,9 @@ wrapped_gobj_dispose_notify(gpointer data, auto *priv = static_cast(data); priv->g_object_finalized = true; + priv->keep_alive.reset(); + dissociate_list_remove(priv); weak_pointer_list.erase(priv); #if DEBUG_DISPOSE gjs_debug(GJS_DEBUG_GOBJECT, "Wrapped GObject %p disposed", where_the_object_was);