Il 25/01/2013 11:33, Andreas Färber ha scritto: > Am 25.01.2013 11:25, schrieb Paolo Bonzini: >> Il 25/01/2013 10:21, Andreas Färber ha scritto: >>>>> >>>>> Ping. >>> I believe I was still waiting for an explanation why this qbus_init() >>> function must be exposed rather than one _new() and one _initialize() >>> function... Not getting feedback on that, I was already considering >>> sending you an alternative patch for the initial two. >> >> Because you cannot object_initialize the result of object_new. It would >> overwrite the free callback and leak memory. > > I never suggested that. > >> So you need three functions: _new() (which is usually called foo_create >> for buses), _initialize() (which is usually foo_create_inplace), and a >> third which I called _init(). > > My question still is, *why* do we need a third one? > > My suggestion is > foo_bus_initialize() -> bus_initialize() -> object_initialize() > and > foo_bus_new() -> bus_new() -> object_new(). > Code sharing can be done static-qbus_realize()-style (call that > qbus_init if you like but don't expose this detail).
Ok, so you suggest keeping the third one but making it static. That works for me. Paolo