[PATCH xserver] xf86ScaleAxis: support for high resolution devices
Philippe Ribet
ribet at cena.fr
Mon Apr 12 00:17:11 PDT 2010
Dan Nicholson wrote:
> On Fri, Apr 9, 2010 at 7:51 AM, Benjamin Tissoires<tissoire at cena.fr> wrote:
>
>> 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>
>> ---
>> hw/xfree86/common/xf86Xinput.c | 6 +++---
>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
>> index 8229227..80bdd19 100644
>> --- a/hw/xfree86/common/xf86Xinput.c
>> +++ b/hw/xfree86/common/xf86Xinput.c
>> @@ -1172,12 +1172,12 @@ 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;
>>
> Not sure, but would you not also need to change the function
> parameters to int64_t?
I don't expect any input peripheral to send values bigger than 32 bits.
Philippe Ribet
More information about the xorg-devel
mailing list