From c5b0a1792ca93c48047c611fdd7ae3c621e94fd8 Mon Sep 17 00:00:00 2001 From: Robert Reif Date: Tue, 25 Jan 2005 20:05:12 +0000 Subject: [PATCH] Copy data structures one at a time using supplied size. --- dlls/dinput/joystick_linux.c | 12 ++++-------- dlls/dinput/mouse.c | 15 ++++++--------- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/dlls/dinput/joystick_linux.c b/dlls/dinput/joystick_linux.c index 76c028cddfb..4562ed5c314 100644 --- a/dlls/dinput/joystick_linux.c +++ b/dlls/dinput/joystick_linux.c @@ -1060,18 +1060,14 @@ static HRESULT WINAPI JoystickAImpl_GetDeviceData( *entries = 0; nqtail = This->queue_tail; while (len) { - DWORD span = ((This->queue_head < nqtail) ? This->queue_len : This->queue_head) - nqtail; - if (span > len) - span = len; - /* Copy the buffered data into the application queue */ - memcpy(dod + *entries, This->data_queue + nqtail, span * dodsize); + memcpy((char *)dod + *entries * dodsize, This->data_queue + nqtail, dodsize); /* Advance position */ - nqtail += span; + nqtail++; if (nqtail >= This->queue_len) nqtail -= This->queue_len; - *entries += span; - len -= span; + (*entries)++; + len--; } } diff --git a/dlls/dinput/mouse.c b/dlls/dinput/mouse.c index b867030319a..c294d052c04 100644 --- a/dlls/dinput/mouse.c +++ b/dlls/dinput/mouse.c @@ -766,17 +766,14 @@ static HRESULT WINAPI SysMouseAImpl_GetDeviceData(LPDIRECTINPUTDEVICE8A iface, *entries = 0; nqtail = This->queue_tail; while (len) { - DWORD span = ((This->queue_head < nqtail) ? This->queue_len : This->queue_head) - nqtail; - if (span > len) - span = len; - /* Copy the buffered data into the application queue */ - memcpy(dod + *entries, This->data_queue + nqtail, span * dodsize); + memcpy((char *)dod + *entries * dodsize, This->data_queue + nqtail, dodsize); /* Advance position */ - nqtail += span; - if (nqtail >= This->queue_len) nqtail -= This->queue_len; - *entries += span; - len -= span; + nqtail++; + if (nqtail >= This->queue_len) + nqtail -= This->queue_len; + (*entries)++; + len--; } } if (!(flags & DIGDD_PEEK)) -- 2.11.4.GIT