We need to ensure that an object is registered before putting it in the
cache, since registering the object adds the weak_ref that we use to know
when the object should be removed from the cache. Prevents a crash in
GetItems.
while (!g_queue_is_empty (to_add))
{
current = g_queue_pop_head (to_add);
+
+ /* Make sure object is registerd so we are notified if it goes away */
+ g_free (spi_register_object_to_path (spi_global_register,
+ G_OBJECT (current)));
+
add_object (cache, G_OBJECT(current));
g_object_unref (G_OBJECT (current));
}