[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