On Mon, Jan 11, 2016 at 06:07:37PM +0100, Francois Gouget wrote: > On Mon, 11 Jan 2016, Christophe Fergeau wrote: > [...] > > > +#define QXLPHYSICAL_FROM_PTR(ptr) ((QXLPHYSICAL)(intptr_t)(ptr)) > > > +#define QXLPHYSICAL_TO_PTR(ptrtype, phy) ((ptrtype)(intptr_t)(phy)) > > > > 'ptrtype' still does not seem to bring much compared to: > > > > #define QXLPHYSICAL_TO_PTR(phy) ((void*)(intptr_t)(phy)) > > Without it you cannot write: > > info = QXLPHYSICAL_TO_PTR(QXLReleaseInfo*, cmd->cmd.data); > > You have to write the following instead: > > info = (QXLReleaseInfo*)QXLPHYSICAL_TO_PTR(cmd->cmd.data); I think in C, void * will be implicitly cast to any other pointer type, ie info = QXLPHYSICAL_TO_PTR(cmd->cmd.data); should work. If this causes a warning, then ACK to your version. > > Is the addition of that (uintptr_t) cast mandatory here? (not really > > important, just curious). > > It is. Without it one gets the following error because cmd is a 32 bit > QXLCommandExt* pointer: > > red-replay-qxl.c: In function 'spice_replay_next_cmd': > red-replay-qxl.c:1162: error: cast from pointer to integer of different size [-Wpointer-to-int-cast] > > Maybe it should go in separately though. I'm fine with keeping it in this patch. Christophe
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel