if (accessible->attributes)
g_hash_table_unref (accessible->attributes);
- _atspi_accessible_unref_cache (accessible);
+ if (accessible->priv->cache)
+ g_hash_table_destroy (accessible->priv->cache);
#ifdef DEBUG_REF_COUNTS
accessible_count--;
if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY)
{
/* new form -- parse properties sent with event */
- _atspi_dbus_update_cache_from_dict (e.source, &iter);
+ cache = _atspi_dbus_update_cache_from_dict (e.source, &iter);
}
if (!strncmp (e.type, "object:children-changed", 23))
gchar *_atspi_name_compat (gchar *in);
-void _atspi_dbus_update_cache_from_dict (AtspiAccessible *accessible, DBusMessageIter *iter);
+GHashTable *_atspi_dbus_update_cache_from_dict (AtspiAccessible *accessible, DBusMessageIter *iter);
gboolean _atspi_get_allow_sync ();
return NULL;
}
-void
+GHashTable *
_atspi_dbus_update_cache_from_dict (AtspiAccessible *accessible, DBusMessageIter *iter)
{
GHashTable *cache = _atspi_accessible_ref_cache (accessible);
g_hash_table_insert (cache, g_strdup (key), val);
dbus_message_iter_next (&iter_dict);
}
+
+ return cache;
}
gboolean