Don't warn if an app returns NULL when referencing a child
authorMike Gorse <mgorse@suse.com>
Mon, 20 May 2013 21:25:46 +0000 (16:25 -0500)
committerMike Gorse <mgorse@suse.com>
Mon, 20 May 2013 21:25:46 +0000 (16:25 -0500)
If atk_object_ref_accessible_child returns NULL when creating the cache,
then don't attempt to process/unref the NULL item, although applications
probably shouldn't be returning NULL in response to a call to
atk_object_ref_accessible_child, so it seems debatable whether we should
be printing a warning here.

atk-adaptor/adaptors/cache-adaptor.c

index 79a9e6a..cad7396 100644 (file)
@@ -154,8 +154,11 @@ append_cache_item (AtkObject * obj, gpointer data)
             AtkObject *child;
 
             child = atk_object_ref_accessible_child (obj, i);
-            spi_object_append_reference (&iter_sub_array, child);
-            g_object_unref (G_OBJECT (child));
+            if (child)
+              {
+                spi_object_append_reference (&iter_sub_array, child);
+                g_object_unref (G_OBJECT (child));
+              }
           }
       }
     if (ATK_IS_SOCKET (obj) && atk_socket_is_occupied (ATK_SOCKET (obj)))