Il 13/06/2012 12:28, Andreas Färber ha scritto: > I am pretty certain that object_new() is NOT called recursively!
It is for interfaces: object_new ->object_new_with_type ->object_initialize_with_type ->object_init_with_type ->object_interface_init and then: static void object_interface_init(Object *obj, InterfaceImpl *iface) { TypeImpl *ti = iface->type; Interface *iface_obj; assert(!object_is_interface(obj)); iface_obj = INTERFACE(object_new(ti->name)); iface_obj->iface_obj = obj; iface_obj->iface_parent.interfaces = INTERFACE_MAGIC; obj->interfaces = g_slist_prepend(obj->interfaces, iface_obj); } Paolo