diff options
Diffstat (limited to 'atspi/atspi-misc.c')
-rw-r--r-- | atspi/atspi-misc.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/atspi/atspi-misc.c b/atspi/atspi-misc.c index 8a6d2636..aeb262b2 100644 --- a/atspi/atspi-misc.c +++ b/atspi/atspi-misc.c @@ -336,7 +336,7 @@ typedef struct } CACHE_ADDITION; static DBusHandlerResult -handle_remove_accessible (DBusConnection *bus, DBusMessage *message, void *user_data) +handle_remove_accessible (DBusConnection *bus, DBusMessage *message) { const char *sender = dbus_message_get_sender (message); AtspiApplication *app; @@ -367,7 +367,7 @@ handle_remove_accessible (DBusConnection *bus, DBusMessage *message, void *user_ } static DBusHandlerResult -handle_name_owner_changed (DBusConnection *bus, DBusMessage *message, void *user_data) +handle_name_owner_changed (DBusConnection *bus, DBusMessage *message) { const char *name, *new, *old; static gboolean registry_lost = FALSE; @@ -718,7 +718,7 @@ const char *cache_signal_type = "((so)(so)(so)iiassusau)"; const char *old_cache_signal_type = "((so)(so)(so)a(so)assusau)"; static DBusHandlerResult -handle_add_accessible (DBusConnection *bus, DBusMessage *message, void *user_data) +handle_add_accessible (DBusConnection *bus, DBusMessage *message) { DBusMessageIter iter; const char *signature = dbus_message_get_signature (message); @@ -739,7 +739,6 @@ typedef struct { DBusConnection *bus; DBusMessage *message; - void *data; } BusDataClosure; static GSource *process_deferred_messages_source = NULL; @@ -753,24 +752,23 @@ process_deferred_message (BusDataClosure *closure) if (type == DBUS_MESSAGE_TYPE_SIGNAL && !strncmp (interface, "org.a11y.atspi.Event.", 21)) { - _atspi_dbus_handle_event (closure->bus, closure->message, closure->data); + _atspi_dbus_handle_event (closure->bus, closure->message); } if (dbus_message_is_method_call (closure->message, atspi_interface_device_event_listener, "NotifyEvent")) { - _atspi_dbus_handle_DeviceEvent (closure->bus, - closure->message, closure->data); + _atspi_dbus_handle_DeviceEvent (closure->bus, closure->message); } if (dbus_message_is_signal (closure->message, atspi_interface_cache, "AddAccessible")) { - handle_add_accessible (closure->bus, closure->message, closure->data); + handle_add_accessible (closure->bus, closure->message); } if (dbus_message_is_signal (closure->message, atspi_interface_cache, "RemoveAccessible")) { - handle_remove_accessible (closure->bus, closure->message, closure->data); + handle_remove_accessible (closure->bus, closure->message); } if (dbus_message_is_signal (closure->message, "org.freedesktop.DBus", "NameOwnerChanged")) { - handle_name_owner_changed (closure->bus, closure->message, closure->data); + handle_name_owner_changed (closure->bus, closure->message); } } @@ -779,7 +777,6 @@ static GQueue *deferred_messages = NULL; static void destroy_deferred_message_item(gpointer ptr) { - /* TODO this is still memory leak on c->data */ BusDataClosure *c = ptr; dbus_message_unref (c->message); dbus_connection_unref (c->bus); @@ -824,13 +821,12 @@ process_deferred_messages_callback (gpointer data) } static DBusHandlerResult -defer_message (DBusConnection *connection, DBusMessage *message, void *user_data) +defer_message (DBusConnection *connection, DBusMessage *message) { BusDataClosure *closure = g_new (BusDataClosure, 1); closure->bus = dbus_connection_ref (bus); closure->message = dbus_message_ref (message); - closure->data = user_data; g_queue_push_tail (deferred_messages, closure); @@ -849,29 +845,32 @@ defer_message (DBusConnection *connection, DBusMessage *message, void *user_data static DBusHandlerResult atspi_dbus_filter (DBusConnection *bus, DBusMessage *message, void *data) { + /* Check that we don't start passing stuff from whatever calls dbus_connection_add_filter() */ + g_assert (data == NULL); + int type = dbus_message_get_type (message); const char *interface = dbus_message_get_interface (message); if (type == DBUS_MESSAGE_TYPE_SIGNAL && !strncmp (interface, "org.a11y.atspi.Event.", 21)) { - return defer_message (bus, message, data); + return defer_message (bus, message); } if (dbus_message_is_method_call (message, atspi_interface_device_event_listener, "NotifyEvent")) { - return defer_message (bus, message, data); + return defer_message (bus, message); } if (dbus_message_is_signal (message, atspi_interface_cache, "AddAccessible")) { - return defer_message (bus, message, data); + return defer_message (bus, message); } if (dbus_message_is_signal (message, atspi_interface_cache, "RemoveAccessible")) { - return defer_message (bus, message, data); + return defer_message (bus, message); } if (dbus_message_is_signal (message, "org.freedesktop.DBus", "NameOwnerChanged")) { - defer_message (bus, message, data); + defer_message (bus, message); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; |