[PATCH 28/29] Xi: fix swapping for barrier events
Peter Hutterer
peter.hutterer at who-t.net
Tue Dec 11 23:19:21 PST 2012
Protocol events don't contain pointers, so it's easier to copy everything
over, then swap in-place.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Xi/extinit.c | 45 +++++++++++++++++++++------------------------
1 file changed, 21 insertions(+), 24 deletions(-)
diff --git a/Xi/extinit.c b/Xi/extinit.c
index 606d61c..73b084c 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -845,30 +845,27 @@ STouchOwnershipEvent(xXITouchOwnershipEvent * from, xXITouchOwnershipEvent * to)
static void
SBarrierEvent(xXIBarrierEvent * from,
xXIBarrierEvent * to) {
- to->type = from->type;
-
- cpswaps(from->sequenceNumber, to->sequenceNumber);
- cpswapl(from->length, to->length);
- cpswaps(from->evtype, to->evtype);
- cpswapl(from->time, to->time);
- cpswaps(from->deviceid, to->deviceid);
- cpswaps(from->sourceid, to->sourceid);
- cpswapl(from->event, to->event);
- cpswapl(from->root, to->root);
- cpswapl(from->root_x, to->root_x);
- cpswapl(from->root_y, to->root_y);
-
-#define SWAP_FP3232(x, y) \
- do { \
- cpswapl((x).integral, (y).integral); \
- cpswapl((x).frac, (y).frac); \
- } while(0)
-
- SWAP_FP3232(from->dx, to->dx);
- SWAP_FP3232(from->dy, to->dy);
- cpswapl(from->dtime, to->dtime);
- cpswapl(from->barrier, to->barrier);
- cpswapl(from->eventid, to->eventid);
+
+ *to = *from;
+
+ swaps(&from->sequenceNumber);
+ swapl(&from->length);
+ swaps(&from->evtype);
+ swapl(&from->time);
+ swaps(&from->deviceid);
+ swaps(&from->sourceid);
+ swapl(&from->event);
+ swapl(&from->root);
+ swapl(&from->root_x);
+ swapl(&from->root_y);
+
+ swapl(&from->dx.integral);
+ swapl(&from->dx.frac);
+ swapl(&from->dy.integral);
+ swapl(&from->dy.frac);
+ swapl(&from->dtime);
+ swapl(&from->barrier);
+ swapl(&from->eventid);
}
/** Event swapping function for XI2 events. */
--
1.8.0.1
More information about the xorg-devel
mailing list