diff options
author | Mario Sanchez Prada <msanchez@igalia.com> | 2011-10-28 20:30:42 +0200 |
---|---|---|
committer | Mario Sanchez Prada <msanchez@igalia.com> | 2011-10-28 21:24:26 +0200 |
commit | ae83b37cf755efac97974f9acf066fac5f868407 (patch) | |
tree | bd5b9b01ad293b3d8d1ae94cacaf840390cf7859 | |
parent | 2b5dfe5ffada378ea823f9566acdff0ec487e348 (diff) | |
download | at-spi2-atk-ae83b37cf755efac97974f9acf066fac5f868407.tar.gz |
Socket's implementation of ref_state_set to return empty sets instead of NULL
Calls to atk_object_ref_state_set() are expected to return a valid
state set always, so it would be better if this implementation of
socket's ref_state_set() returned empty sets instead of just NULL, to
avoid calling to atk_state_set_*() functions over invalid instances of
AtkStateSet (e.g. add_pending_items() in accessible-cache.c).
https://bugs.freedesktop.org/show_bug.cgi?id=42350
-rw-r--r-- | atk-adaptor/bridge.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/atk-adaptor/bridge.c b/atk-adaptor/bridge.c index d049731..a1ee202 100644 --- a/atk-adaptor/bridge.c +++ b/atk-adaptor/bridge.c @@ -334,17 +334,19 @@ socket_ref_state_set (AtkObject *accessible) DBusMessageIter iter, iter_array; AtkStateSet *set; + set = atk_state_set_new (); + if (!socket->embedded_plug_id) - return NULL; + return set; child_name = g_strdup (socket->embedded_plug_id); if (!child_name) - return NULL; + return set; child_path = g_utf8_strchr (child_name + 1, -1, ':'); if (!child_path) { g_free (child_name); - return NULL; + return set; } *(child_path++) = '\0'; message = dbus_message_new_method_call (child_name, child_path, ATSPI_DBUS_INTERFACE_ACCESSIBLE, "GetState"); @@ -352,15 +354,13 @@ socket_ref_state_set (AtkObject *accessible) reply = dbus_connection_send_with_reply_and_block (spi_global_app_data->bus, message, 1, NULL); dbus_message_unref (message); if (reply == NULL) - return NULL; + return set; if (strcmp (dbus_message_get_signature (reply), "au") != 0) { dbus_message_unref (reply); - return NULL; + return set; } - set = atk_state_set_new (); - if (!set) - return NULL; + dbus_message_iter_init (reply, &iter); dbus_message_iter_recurse (&iter, &iter_array); do |