summaryrefslogtreecommitdiff
path: root/droute/droute.h
diff options
context:
space:
mode:
authorMike Gorse <mgorse@suse.com>2022-04-07 12:43:59 -0500
committerMike Gorse <mgorse@suse.com>2022-04-08 09:09:56 -0500
commit4766e3be06cef19c7bc647eae0a3af61b254dc38 (patch)
tree2f73fae165d00492c7cbfba736d7b4548d3b5b30 /droute/droute.h
parent6a36042d828c8edc3976eec6deb9a4e7a7a7b037 (diff)
downloadat-spi2-atk-4766e3be06cef19c7bc647eae0a3af61b254dc38.tar.gz
droute: handle unimplemented interfaces for GetAll and introspection
The iterator for retrieving all properties doesn't handle a getter failing, which happens if the AtkObject doesn't implement the atk interface corresponding to the dbus interface. This leads to the application aborting on account of a malformed DBusMessage. Helps #20
Diffstat (limited to 'droute/droute.h')
-rw-r--r--droute/droute.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/droute/droute.h b/droute/droute.h
index 68c113d..506fef1 100644
--- a/droute/droute.h
+++ b/droute/droute.h
@@ -34,6 +34,7 @@ typedef dbus_bool_t (*DRoutePropertyFunction) (DBusMessageIter *, void *);
typedef gchar *(*DRouteIntrospectChildrenFunction) (const char *, void *);
typedef void *(*DRouteGetDatumFunction) (const char *, void *);
+typedef gboolean (*DRouteQueryInterfaceFunction) (void *, const char *);
typedef struct _DRouteMethod DRouteMethod;
struct _DRouteMethod
@@ -75,7 +76,8 @@ droute_add_many (DRouteContext *cnx,
const void *data,
DRouteIntrospectChildrenFunction introspect_children_cb,
void *introspect_children_data,
- const DRouteGetDatumFunction get_datum);
+ const DRouteGetDatumFunction get_datum,
+ const DRouteQueryInterfaceFunction query_interface_cb);
void
droute_path_add_interface (DRoutePath *path,