Ensure that DBus errors are freed
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / adaptors / selection-adaptor.c
index 4516b52..33c696d 100644 (file)
@@ -25,8 +25,9 @@
 #include <atk/atk.h>
 #include <droute/droute.h>
 
-#include "common/spi-dbus.h"
-#include "accessible-marshaller.h"
+#include "spi-dbus.h"
+#include "object.h"
+#include "introspection.h"
 
 static dbus_bool_t
 impl_get_NSelectedChildren (DBusMessageIter * iter, void *user_data)
@@ -52,21 +53,24 @@ impl_GetSelectedChild (DBusConnection * bus, DBusMessage * message,
                        void *user_data)
 {
   AtkSelection *selection = (AtkSelection *) user_data;
-  DBusError error;
+  DBusMessage *reply;
   dbus_int32_t selectedChildIndex;
   AtkObject *atk_object;
 
   g_return_val_if_fail (ATK_IS_SELECTION (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &selectedChildIndex,
+      (message, NULL, DBUS_TYPE_INT32, &selectedChildIndex,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
   atk_object = atk_selection_ref_selection (selection, selectedChildIndex);
-  return spi_dbus_return_object (message, atk_object, TRUE, TRUE);
+  reply = spi_object_return_reference (message, atk_object);
+  if (atk_object)
+    g_object_unref (atk_object);
+
+  return reply;
 }
 
 static DBusMessage *
@@ -74,16 +78,14 @@ impl_SelectChild (DBusConnection * bus, DBusMessage * message,
                   void *user_data)
 {
   AtkSelection *selection = (AtkSelection *) user_data;
-  DBusError error;
   dbus_int32_t childIndex;
   dbus_bool_t rv;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_SELECTION (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &childIndex, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &childIndex, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -102,16 +104,14 @@ impl_DeselectSelectedChild (DBusConnection * bus, DBusMessage * message,
                             void *user_data)
 {
   AtkSelection *selection = (AtkSelection *) user_data;
-  DBusError error;
   dbus_int32_t selectedChildIndex;
   dbus_bool_t rv;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_SELECTION (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &selectedChildIndex,
+      (message, NULL, DBUS_TYPE_INT32, &selectedChildIndex,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
@@ -131,16 +131,14 @@ impl_IsChildSelected (DBusConnection * bus, DBusMessage * message,
                       void *user_data)
 {
   AtkSelection *selection = (AtkSelection *) user_data;
-  DBusError error;
   dbus_int32_t childIndex;
   dbus_bool_t rv;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_SELECTION (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &childIndex, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &childIndex, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -198,7 +196,6 @@ impl_DeselectChild (DBusConnection * bus, DBusMessage * message,
                     void *user_data)
 {
   AtkSelection *selection = (AtkSelection *) user_data;
-  DBusError error;
   dbus_int32_t selectedChildIndex;
   dbus_bool_t rv = FALSE;
   gint i, nselected;
@@ -206,9 +203,8 @@ impl_DeselectChild (DBusConnection * bus, DBusMessage * message,
 
   g_return_val_if_fail (ATK_IS_SELECTION (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &selectedChildIndex,
+      (message, NULL, DBUS_TYPE_INT32, &selectedChildIndex,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
@@ -254,6 +250,7 @@ void
 spi_initialize_selection (DRoutePath * path)
 {
   droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_SELECTION,
+                             ATSPI_DBUS_INTERFACE_SELECTION,
+                             spi_org_a11y_atspi_Selection,
                              methods, properties);
 };