summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gorse <mgorse@suse.com>2015-11-09 17:03:13 -0600
committerMike Gorse <mgorse@suse.com>2015-11-09 17:03:13 -0600
commit0927e42791b6f866088108bec829fdf3037bc456 (patch)
treeb00939a9b9856c1c46883236e812685f2e3c2a0a
parent7ebb237d55c677458f345117799b90386f791165 (diff)
downloadat-spi2-core-0927e42791b6f866088108bec829fdf3037bc456.tar.gz
get_index_in_parent: Don't crash if parent is defunct
-rw-r--r--atspi/atspi-accessible.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/atspi/atspi-accessible.c b/atspi/atspi-accessible.c
index 85970d25..ceaedb57 100644
--- a/atspi/atspi-accessible.c
+++ b/atspi/atspi-accessible.c
@@ -399,11 +399,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;