[PATCH evdev] Don't crop long value from EvdevBitIsSet.

walter harms wharms at bfs.de
Wed Nov 2 04:29:51 PDT 2011



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 ?

re,
 wh




More information about the xorg-devel mailing list