On Fri, Oct 23, 2015 at 10:29:04AM -0400, Frediano Ziglio wrote: > It would be much better to define a public structure like > > struct CursorChannel { > CommonChannel common; > }; > > and a private one (in cursor-channel.c) like > > struct CursorChannel { > CommonChannel common; > ... any field needed ... > } > > and define the macro as > > #define RED_CHANNEL(Channel) (&(Channel)->common.base) This kind of macros does not work as soon as you introduce another level of inheritance: struct SpecializedCursorChannel { CursorChannel parent; /* more stuff */ }; You cannot use your RED_CHANNEL macro to get a RedChannel from a SpecializedCursorChannel instance. Christophe
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel