Jacek Caban : winmm: Introduce compare_uint helper.

Alexandre Julliard julliard at winehq.org
Wed Jun 3 16:40:58 CDT 2020


Module: wine
Branch: master
Commit: 12f6e8086b7dcf7738953d4d2eeb63d310654447
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=12f6e8086b7dcf7738953d4d2eeb63d310654447

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed May 27 23:55:50 2020 +0200

winmm: Introduce compare_uint helper.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winmm/joystick.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/dlls/winmm/joystick.c b/dlls/winmm/joystick.c
index e844be1837..2b1811d377 100644
--- a/dlls/winmm/joystick.c
+++ b/dlls/winmm/joystick.c
@@ -55,6 +55,12 @@ typedef struct tagWINE_JOYSTICK {
 
 static	WINE_JOYSTICK	JOY_Sticks[MAXJOYSTICK];
 
+static BOOL compare_uint(unsigned int x, unsigned int y, unsigned int max_diff)
+{
+    unsigned int diff = x > y ? x - y : y - x;
+    return diff <= max_diff;
+}
+
 /**************************************************************************
  * 				JOY_LoadDriver		[internal]
  */
@@ -106,14 +112,14 @@ static	void	CALLBACK	JOY_Timer(HWND hWnd, UINT wMsg, UINT_PTR wTimer, DWORD dwTi
 	pos = MAKELONG(ji.wXpos, ji.wYpos);
 
 	if (!joy->bChanged ||
-	    abs(joy->ji.wXpos - ji.wXpos) > joy->threshold ||
-	    abs(joy->ji.wYpos - ji.wYpos) > joy->threshold) {
+	    !compare_uint(joy->ji.wXpos, ji.wXpos, joy->threshold) ||
+	    !compare_uint(joy->ji.wYpos, ji.wYpos, joy->threshold)) {
 	    SendMessageA(joy->hCapture, MM_JOY1MOVE + i, ji.wButtons, pos);
 	    joy->ji.wXpos = ji.wXpos;
 	    joy->ji.wYpos = ji.wYpos;
 	}
 	if (!joy->bChanged ||
-	    abs(joy->ji.wZpos - ji.wZpos) > joy->threshold) {
+	    !compare_uint(joy->ji.wZpos, ji.wZpos, joy->threshold)) {
 	    SendMessageA(joy->hCapture, MM_JOY1ZMOVE + i, ji.wButtons, pos);
 	    joy->ji.wZpos = ji.wZpos;
 	}




More information about the wine-cvs mailing list