diff options
author | Mike Gorse <mgorse@suse.com> | 2012-09-17 19:06:40 -0500 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2012-09-17 19:06:40 -0500 |
commit | da10ef8b744bf7b04d18bda4cead3a9d71548a3e (patch) | |
tree | 77257124e05b8527cb6c8faf620b7e087a64a95b | |
parent | e1015608a0f79178be66220f17d1af5fab030bfa (diff) | |
download | at-spi2-atk-da10ef8b744bf7b04d18bda4cead3a9d71548a3e.tar.gz |
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).
-rw-r--r-- | atk-adaptor/accessible-cache.c | 3 |
1 files changed, 1 insertions, 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); } } |