From da10ef8b744bf7b04d18bda4cead3a9d71548a3e Mon Sep 17 00:00:00 2001 From: Mike Gorse Date: Mon, 17 Sep 2012 19:06:40 -0500 Subject: [PATCH] Fix an errant g_object_unref If an object is deregistered but not in the cache, then only unref it if it was found in the queue of objects to be added (ie, it is possible that it is leased, rather than queued to be cached, in which case it should not be unrefed). --- atk-adaptor/accessible-cache.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/atk-adaptor/accessible-cache.c b/atk-adaptor/accessible-cache.c index 3a30b51..be247e4 100644 --- a/atk-adaptor/accessible-cache.c +++ b/atk-adaptor/accessible-cache.c @@ -179,9 +179,8 @@ remove_object (GObject * source, GObject * gobj, gpointer data) g_signal_emit (cache, cache_signals [OBJECT_REMOVED], 0, gobj); g_hash_table_remove (cache->objects, gobj); } - else + else if (g_queue_remove (cache->add_traversal, gobj)) { - g_queue_remove (cache->add_traversal, gobj); g_object_unref (gobj); } } -- 2.7.4