meson: Actually use the soversion
[platform/upstream/at-spi2-core.git] / atspi / atspi-accessible.c
index 85970d2..e7f1446 100644 (file)
@@ -173,13 +173,14 @@ atspi_accessible_finalize (GObject *object)
 {
   AtspiAccessible *accessible = ATSPI_ACCESSIBLE (object);
 
-    g_free (accessible->description);
-    g_free (accessible->name);
+  g_free (accessible->description);
+  g_free (accessible->name);
+
   if (accessible->attributes)
     g_hash_table_unref (accessible->attributes);
 
-    if (accessible->priv->cache)
-      g_hash_table_destroy (accessible->priv->cache);
+  if (accessible->priv->cache)
+    g_hash_table_destroy (accessible->priv->cache);
 
 #ifdef DEBUG_REF_COUNTS
   accessible_count--;
@@ -268,11 +269,12 @@ atspi_accessible_get_parent (AtspiAccessible *obj, GError **error)
 {
   g_return_val_if_fail (obj != NULL, NULL);
 
-  if (obj->parent.app &&
-      !_atspi_accessible_test_cache (obj, ATSPI_CACHE_PARENT))
+  if (!_atspi_accessible_test_cache (obj, ATSPI_CACHE_PARENT))
   {
     DBusMessage *message, *reply;
     DBusMessageIter iter, iter_variant;
+    if (!obj->parent.app)
+      return NULL;
     message = dbus_message_new_method_call (obj->parent.app->bus_name,
                                             obj->parent.path,
                                             DBUS_INTERFACE_PROPERTIES, "Get");
@@ -399,11 +401,15 @@ atspi_accessible_get_index_in_parent (AtspiAccessible *obj, GError **error)
     if (!obj->accessible_parent)
       return -1;
 
+    if (!_atspi_accessible_test_cache (obj->accessible_parent, ATSPI_CACHE_CHILDREN) || !obj->accessible_parent->children)
+        goto dbus;
+
     for (i = 0; i < obj->accessible_parent->children->len; i++)
       if (g_ptr_array_index (obj->accessible_parent->children, i) == obj)
         return i;
   }
 
+dbus:
   _atspi_dbus_call (obj, atspi_interface_accessible,
                     "GetIndexInParent", NULL, "=>i", &ret);
   return ret;
@@ -1630,8 +1636,9 @@ atspi_accessible_clear_cache (AtspiAccessible *obj)
   if (obj)
   {
     obj->cached_properties = ATSPI_CACHE_NONE;
-    for (i = 0; i < obj->children->len; i++)
-      atspi_accessible_clear_cache (g_ptr_array_index (obj->children, i));
+    if (obj->children)
+      for (i = 0; i < obj->children->len; i++)
+        atspi_accessible_clear_cache (g_ptr_array_index (obj->children, i));
   }
 }