When an object goes away, remove from queue of pending cache additions
authorMike Gorse <mgorse@linux-l2tz.site>
Sat, 21 Jan 2012 18:13:02 +0000 (12:13 -0600)
committerMike Gorse <mgorse@linux-l2tz.site>
Sat, 21 Jan 2012 18:13:02 +0000 (12:13 -0600)
Items are added to the cache in an idle (see commit 75ff19), meaning
that it is possible for an object to go away between the time it is
queued for addition and the time the additions are made.

https://bugzilla.gnome.org/show_bug.cgi?id=666371

atk-adaptor/accessible-cache.c

index fa6b561..943a320 100644 (file)
@@ -179,6 +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
+    g_queue_remove (cache->add_traversal, gobj);
 }
 
 static void