dix: fix a crash when the client has a different byteorder.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
This commit is contained in:
Michel Dänzer 2008-06-18 09:23:09 +09:30 committed by Peter Hutterer
parent d21155a3e9
commit 068fa63496
1 changed files with 5 additions and 4 deletions

View File

@ -6168,6 +6168,10 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
if (events->u.u.type == GenericEvent)
{
eventlength += ((xGenericEvent*)events)->length * 4;
}
if(pClient->swapped)
{
if (eventlength > swapEventLen)
{
swapEventLen = eventlength;
@ -6178,10 +6182,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
return;
}
}
}
if(pClient->swapped)
{
for(i = 0; i < count; i++)
{
eventFrom = &events[i];
@ -6192,7 +6193,7 @@ WriteEventsToClient(ClientPtr pClient, int count, xEvent *events)
(*EventSwapVector[eventFrom->u.u.type & 0177])
(eventFrom, eventTo);
(void)WriteToClient(pClient, eventlength, (char *)&eventTo);
(void)WriteToClient(pClient, eventlength, (char *)eventTo);
}
}
else