On 01/03/2012 02:18 AM, Anthony Liguori wrote:
2) Why do you need a list for the interface objects at all? You can make
obj->interfaces point to a single blob, and initialize the objects in
place. You
only need to store the number of interfaces into the TypeImpl or in
the object
header, or add a dummy Interface at the end whose contents are all-zero.
Interfaces aren't really handled in a special way. You could easily
make it so that the infrastructure could be modified to allow true
multiple inheritance.
I'm not sure I see an obvious benefit to making interfaces handled more
as a special case. Right now, the only place that really even knows
about interfaces is dynamic_cast and initialization. That seems like a
good thing to me.
That wouldn't really be a special case, not any more than initializing a
device's child in-place within the parent struct.
Anyhow, nothing that can't be done as a followup. Will review v2 now.
Paolo