[PATCH evdev] Don't crop long value from EvdevBitIsSet.
Chase Douglas
chase.douglas at canonical.com
Wed Nov 2 06:15:35 PDT 2011
On 11/02/2011 07:29 AM, walter harms wrote:
>
>
> Am 02.11.2011 00:52, schrieb Peter Hutterer:
>> Introduced in xf86-input-evdev-2.6.0-26-g4969389
>>
>> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
>> ---
>> Cutting long to int for the return value loses us some values, notably in
>> the ABS_MT ranges.
>>
>> src/evdev.c | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/evdev.c b/src/evdev.c
>> index f593df0..6ab1a18 100644
>> --- a/src/evdev.c
>> +++ b/src/evdev.c
>> @@ -190,7 +190,7 @@ static size_t EvdevCountBits(unsigned long *array, size_t nlongs)
>>
>> static inline int EvdevBitIsSet(const unsigned long *array, int bit)
>> {
>> - return array[bit / LONG_BITS] & (1LL << (bit % LONG_BITS));
>> + return !!(array[bit / LONG_BITS] & (1LL << (bit % LONG_BITS)));
>> }
>>
>> static inline void EvdevSetBit(unsigned long *array, int bit)
>
> hi,
> i have never seen that !! notation. perhaps (array == 0) would be more readable and
> not suprise to much people ?
I would like to echo this. I actually don't know what the '!!' does
here. Since this is a one-off issue, can you add a comment to explain
what it is doing?
-- Chase
More information about the xorg-devel
mailing list