Support sending data with events
[platform/core/uifw/at-spi2-atk.git] / atk-adaptor / adaptors / table-adaptor.c
index f296816..d3bbba5 100644 (file)
@@ -24,8 +24,9 @@
 
 #include <atk/atk.h>
 #include <droute/droute.h>
+#include "bridge.h"
 
-#include "common/spi-dbus.h"
+#include "spi-dbus.h"
 #include "object.h"
 #include "introspection.h"
 
@@ -96,21 +97,20 @@ impl_GetAccessibleAt (DBusConnection * bus, DBusMessage * message,
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row, column;
   DBusMessage *reply;
-  DBusError error;
   AtkObject *obj;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
   obj = atk_table_ref_at (table, row, column);
   reply = spi_object_return_reference (message, obj);
-  g_object_unref (obj);
+  if (obj)
+    g_object_unref (obj);
 
   return reply;
 }
@@ -121,14 +121,12 @@ impl_GetIndexAt (DBusConnection * bus, DBusMessage * message, void *user_data)
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row, column;
   dbus_int32_t index;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
@@ -150,14 +148,12 @@ impl_GetRowAtIndex (DBusConnection * bus, DBusMessage * message,
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t index;
   dbus_int32_t row;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -178,14 +174,12 @@ impl_GetColumnAtIndex (DBusConnection * bus, DBusMessage * message,
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t index;
   dbus_int32_t column;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -199,8 +193,8 @@ impl_GetColumnAtIndex (DBusConnection * bus, DBusMessage * message,
   return reply;
 }
 
-static gchar *
-validate_unallocated_string (gchar *str)
+static const gchar *
+validate_unallocated_string (const gchar *str)
 {
   if (!str)
     return "";
@@ -219,14 +213,12 @@ impl_GetRowDescription (DBusConnection * bus, DBusMessage * message,
   dbus_int32_t row;
   AtkTable *table = (AtkTable *) user_data;
   const gchar *description;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -248,14 +240,12 @@ impl_GetColumnDescription (DBusConnection * bus, DBusMessage * message,
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t column;
   const char *description;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -277,14 +267,12 @@ impl_GetRowExtentAt (DBusConnection * bus, DBusMessage * message,
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row, column;
   dbus_int32_t extent;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
@@ -306,14 +294,12 @@ impl_GetColumnExtentAt (DBusConnection * bus, DBusMessage * message,
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row, column;
   dbus_int32_t extent;
-  DBusError error;
   DBusMessage *reply;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
@@ -334,14 +320,12 @@ impl_GetRowHeader (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row;
-  DBusError error;
   AtkObject *obj = NULL;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -355,14 +339,12 @@ impl_GetColumnHeader (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t column;
-  DBusError error;
   AtkObject *obj;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -428,15 +410,13 @@ impl_IsRowSelected (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -456,15 +436,13 @@ impl_IsColumnSelected (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t column;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -483,15 +461,13 @@ impl_IsSelected (DBusConnection * bus, DBusMessage * message, void *user_data)
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row, column;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INT32, &column,
        DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
@@ -512,15 +488,13 @@ impl_AddRowSelection (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -540,15 +514,13 @@ impl_AddColumnSelection (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t column;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -568,15 +540,13 @@ impl_RemoveRowSelection (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t row;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &row, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -596,15 +566,13 @@ impl_RemoveColumnSelection (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t column;
-  DBusError error;
   DBusMessage *reply;
   dbus_bool_t ret;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &column, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -624,20 +592,17 @@ impl_GetRowColumnExtentsAtIndex (DBusConnection * bus, DBusMessage * message,
 {
   AtkTable *table = (AtkTable *) user_data;
   dbus_int32_t index;
-  DBusError error;
   dbus_int32_t row, column, row_extents, col_extents;
   dbus_bool_t is_selected;
   dbus_bool_t ret;
   DBusMessage *reply;
-
   AtkObject *cell;
-  AtkRole role;
+  AtkRole role = ATK_ROLE_INVALID;
 
   g_return_val_if_fail (ATK_IS_TABLE (user_data),
                         droute_not_yet_handled_error (message));
-  dbus_error_init (&error);
   if (!dbus_message_get_args
-      (message, &error, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID))
+      (message, NULL, DBUS_TYPE_INT32, &index, DBUS_TYPE_INVALID))
     {
       return droute_invalid_arguments_error (message);
     }
@@ -647,8 +612,11 @@ impl_GetRowColumnExtentsAtIndex (DBusConnection * bus, DBusMessage * message,
   col_extents = atk_table_get_column_extent_at (table, row, column);
   is_selected = atk_table_is_selected (table, row, column);
   cell = atk_table_ref_at (table, row, column);
-  role = atk_object_get_role (cell);
-  g_object_unref (cell);
+  if (cell)
+  {
+    role = atk_object_get_role (cell);
+    g_object_unref (cell);
+  }
   ret = (role == ATK_ROLE_TABLE_CELL ? TRUE : FALSE);
   reply = dbus_message_new_method_return (message);
   if (reply)
@@ -700,6 +668,6 @@ static DRouteProperty properties[] = {
 void
 spi_initialize_table (DRoutePath * path)
 {
-  droute_path_add_interface (path,
-                             SPI_DBUS_INTERFACE_TABLE, spi_org_a11y_atspi_Table, methods, properties);
+  spi_atk_add_interface (path,
+                         ATSPI_DBUS_INTERFACE_TABLE, spi_org_a11y_atspi_Table, methods, properties);
 };