> > I don't find this very readable, and imo there is not a huge gain in > > doing this over a cast... I'd just go with a cast + a static > > compile-time assert that RedCursorPipeItem has a 'base' RedPipeItem > > field at offset 0. > > > > static void cursor_pipe_item_free(RedPipeItem *base) > { > spice_return_if_fail(base); > > verify(SPICE_OFFSETOF(RedCursorPipeItem, base) == 0); > RedCursorPipeItem *pipe_item = (RedCursorPipeItem *) base; > ... > > (obviously for every cast) I'd put it next to the structure definition and forget about it typedef struct RedCursorPipeItem { RedPipeItem base; CursorItem *cursor_item; } RedCursorPipeItem; verify(SPICE_OFFSETOF(RedCursorPipeItem, base) == 0); Christophe
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel