[PATCH] dix: do not use bit-wise operators on the boolean result of BitIsOn

Peter Hutterer peter.hutterer at who-t.net
Tue Nov 30 15:04:44 PST 2010


On Tue, Nov 30, 2010 at 07:06:55PM +0100, Ferry Huberts wrote:
> From: Ferry Huberts <ferry.huberts at pelagic.nl>
> 
> Performing bit-wise operations on a boolean amounts to mixing types,
> is confusing and basically incorrect; one should only perform
> logical operations on booleans.
> 
> Performing such operations relies on the implementation detail
> that a boolean is in fact an integer and that its value FALSE
> is implemented as zero.
> 
> Signed-off-by: Ferry Huberts <ferry.huberts at pelagic.nl>
> ---
>  dix/getevents.c |   12 ++++++------
>  1 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/dix/getevents.c b/dix/getevents.c
> index f09d31c..25889de 100644
> --- a/dix/getevents.c
> +++ b/dix/getevents.c
> @@ -112,12 +112,12 @@ set_button_up(DeviceIntPtr pDev, int button, int type)
>  Bool
>  button_is_down(DeviceIntPtr pDev, int button, int type)
>  {
> -    int ret = 0;
> +    Bool ret = FALSE;
>  
>      if (type & BUTTON_PROCESSED)
> -        ret |= BitIsOn(pDev->button->down, button);
> +        ret = ret || BitIsOn(pDev->button->down, button);
>      if (type & BUTTON_POSTED)
> -        ret |= BitIsOn(pDev->button->postdown, button);
> +        ret = ret || BitIsOn(pDev->button->postdown, button);
>  
>      return ret;
>  }
> @@ -143,12 +143,12 @@ set_key_up(DeviceIntPtr pDev, int key_code, int type)
>  Bool
>  key_is_down(DeviceIntPtr pDev, int key_code, int type)
>  {
> -    int ret = 0;
> +    Bool ret = FALSE;
>  
>      if (type & KEY_PROCESSED)
> -        ret |= BitIsOn(pDev->key->down, key_code);
> +        ret = ret || BitIsOn(pDev->key->down, key_code);
>      if (type & KEY_POSTED)
> -        ret |= BitIsOn(pDev->key->postdown, key_code);
> +        ret = ret || BitIsOn(pDev->key->postdown, key_code);
>  
>      return ret;
>  }
> -- 
> 1.7.3.2

merged, thanks.

Cheers,
  Peter


More information about the xorg-devel mailing list