atk_set = atk_object_ref_state_set (object);
set = spi_state_set_new (atk_set);
- retval = bonobo_object_dup_ref (
+ retval = CORBA_Object_duplicate (
BONOBO_OBJREF(set),
- ev);
+ NULL);
+
+ g_object_unref (atk_set);
return retval;
}
CORBA_Environment *ev)
{
Accessibility_RelationSet *retval;
- gint n_relations;
+ gint n_relations = 0;
gint i;
AtkRelationSet *relation_set;
AtkObject *object = get_atkobject_from_servant (servant);
relation_set = atk_object_ref_relation_set (object);
- n_relations = atk_relation_set_get_n_relations (relation_set);
+ if (relation_set)
+ n_relations = atk_relation_set_get_n_relations (relation_set);
retval = CORBA_sequence_Accessibility_Relation__alloc ();
retval->_length = retval->_maximum = n_relations;
for (i = 0; i < n_relations; ++i)
{
retval->_buffer[i] =
- bonobo_object_dup_ref (
+ CORBA_Object_duplicate (
BONOBO_OBJREF (
spi_relation_new (atk_relation_set_get_relation (relation_set, i))),
- ev);
+ NULL);
}
return retval;
g_return_val_if_fail (object != NULL, NULL);
attributes = atk_object_get_attributes (object);
-
- bonobo_return_val_if_fail (attributes != NULL, NULL, ev);
- n_attributes = g_slist_length (attributes);
+
+ if (attributes)
+ n_attributes = g_slist_length (attributes);
retval = CORBA_sequence_CORBA_string__alloc ();
retval->_length = retval->_maximum = n_attributes;
bonobo_object_add_interface (bonobo_object (retval),
BONOBO_OBJECT (spi_streamable_interface_new (o)));
}
- if (ATK_IS_DOCUMENT (o))
+ if (ATK_IS_DOCUMENT (o)) /* We add collection interface to document */
{
- bonobo_object_add_interface (bonobo_object (retval),
- BONOBO_OBJECT (spi_document_interface_new (o)));
+
+
+ SpiDocument *doc = spi_document_interface_new (o);
+ bonobo_object_add_interface (BONOBO_OBJECT (doc),
+ BONOBO_OBJECT (spi_collection_interface_new (o)));
+
+ bonobo_object_add_interface (bonobo_object (retval),
+ BONOBO_OBJECT (doc));
}
if (ATK_IS_HYPERLINK_IMPL (o))
{