xserver: Branch 'server-1.7-branch'
Julien Cristau
jcristau at kemper.freedesktop.org
Mon Mar 7 03:17:41 PST 2011
hw/xfree86/common/xf86Xinput.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
New commits:
commit ee8664ee8573d810a8768a2e10dd896b630697ff
Author: Benjamin Tissoires <tissoire at cena.fr>
Date: Wed Apr 14 17:27:51 2010 +0200
xf86ScaleAxis: support for high resolution devices
High resolution devices was generating integer overflow.
For instance the wacom Cintiq 21UX has an axis value up to
87000. Thus the term (dSx * (Cx - Rxlow)) is greater than
MAX_INT32.
Using 64bits integer avoids such problem.
Signed-off-by: Philippe Ribet <ribet at cena.fr>
Signed-off-by: Benjamin Tissoires <tissoire at cena.fr>
Reviewed-by: Keith Packard <keithp at keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
(cherry picked from commit a780e5b3638a0ff81301fc68aca15b47ba0befb7)
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index f637cfe..2b9c974 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -79,6 +79,7 @@
#include "windowstr.h" /* screenIsSaved */
#include <stdarg.h>
+#include <stdint.h> /* for int64_t */
#include <X11/Xpoll.h>
@@ -978,12 +979,11 @@ xf86ScaleAxis(int Cx,
int Rxlow )
{
int X;
- int dSx = Sxhigh - Sxlow;
- int dRx = Rxhigh - Rxlow;
+ int64_t dSx = Sxhigh - Sxlow;
+ int64_t dRx = Rxhigh - Rxlow;
- dSx = Sxhigh - Sxlow;
if (dRx) {
- X = ((dSx * (Cx - Rxlow)) / dRx) + Sxlow;
+ X = (int)(((dSx * (Cx - Rxlow)) / dRx) + Sxlow);
}
else {
X = 0;
More information about the xorg-commit
mailing list