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

Reply via email to