g_free (child_name);
}
child = atk_object_ref_accessible_child (object, i);
- return spi_object_return_reference (message, child);
+ return spi_object_return_reference (message, child, TRUE);
}
static DBusMessage *
DBusMessage * message, void *user_data)
{
AtkObject *root = g_object_ref (atk_get_root ());
- return spi_object_return_reference (message, root);
+ return spi_object_return_reference (message, root, TRUE);
}
static DBusMessage *
impl_GetRoot (DBusConnection * bus, DBusMessage * message, void *user_data)
{
return spi_object_return_reference (message,
- g_object_ref (G_OBJECT (spi_global_app_data->root)));
+ g_object_ref (G_OBJECT (spi_global_app_data->root)),
+ TRUE);
}
/*---------------------------------------------------------------------------*/
child =
atk_component_ref_accessible_at_point (component, x, y,
(AtkCoordType) coord_type);
- return spi_object_return_reference (message, child);
+ return spi_object_return_reference (message, child, TRUE);
}
static DBusMessage *
return droute_invalid_arguments_error (message);
}
atk_object = atk_hyperlink_get_object (link, i);
- return spi_object_return_reference (message, atk_object);
+ return spi_object_return_reference (message, atk_object, FALSE);
}
static DBusMessage *
return droute_invalid_arguments_error (message);
}
atk_object = atk_selection_ref_selection (selection, selectedChildIndex);
- return spi_object_return_reference (message, atk_object);
+ return spi_object_return_reference (message, atk_object, TRUE);
}
static DBusMessage *
return droute_invalid_arguments_error (message);
}
obj = atk_table_ref_at (table, row, column);
- return spi_object_return_reference (message, obj);
+ return spi_object_return_reference (message, obj, TRUE);
}
static DBusMessage *
return droute_invalid_arguments_error (message);
}
obj = atk_table_get_row_header (table, row);
- return spi_object_return_reference (message, obj);
+ return spi_object_return_reference (message, obj, FALSE);
}
static DBusMessage *
return droute_invalid_arguments_error (message);
}
obj = atk_table_get_column_header (table, column);
- return spi_object_return_reference (message, obj);
+ return spi_object_return_reference (message, obj, FALSE);
}
static DBusMessage *
}
DBusMessage *
-spi_object_return_reference (DBusMessage * msg, AtkObject * obj)
+spi_object_return_reference (DBusMessage * msg, AtkObject * obj, gboolean unref)
{
DBusMessage *reply;
dbus_message_iter_init_append (reply, &iter);
spi_object_append_reference (&iter, obj);
}
- if (obj)
+ if (unref && obj)
g_object_unref (G_OBJECT (obj));
return reply;
spi_object_append_null_reference (DBusMessageIter * iter);
DBusMessage *
-spi_object_return_reference (DBusMessage * msg, AtkObject * obj);
+spi_object_return_reference (DBusMessage * msg, AtkObject * obj, gboolean unref);
DBusMessage *
spi_hyperlink_return_reference (DBusMessage * msg, AtkHyperlink * obj);