diff mbox

zbar: Fix gcc5 logical-not-parentheses error

Message ID 569E07BA.2050106@inbox.ru
State Changes Requested
Headers show

Commit Message

Volkov Viacheslav Jan. 19, 2016, 9:54 a.m. UTC
From b9dd5d73c19d2b7170f722dba61a99655487fe9c Mon Sep 17 00:00:00 2001
From: Viacheslav Volkov <sv99@inbox.ru>
Date: Tue, 19 Jan 2016 12:19:29 +0300
Subject: [PATCH] zbar: Fix gcc5 logical-not-parentheses error

Fix error: logical not is only applied to the left hand side of comparison
[-Werror=logical-not-parentheses]

Signed-off-by: Viacheslav Volkov <sv99@inbox.ru>
---
 zbar/decoder/ean.c  | 4 ++--
 zbar/qrcode/qrdec.c | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

 
@@ -1261,7 +1261,7 @@ static int qr_finder_locate_crossing(const
unsigned char *_img,
       x0[1-steep]+=step[1-steep];
       err-=dx[steep];
     }
-    if(!_img[x0[1]*_width+x0[0]]!=_v)break;
+    if(!(_img[x0[1]*_width+x0[0]]!=_v))break;
   }
   /*Find the last crossing from _v to !_v.*/
   err=0;
@@ -1273,7 +1273,7 @@ static int qr_finder_locate_crossing(const
unsigned char *_img,
       x1[1-steep]-=step[1-steep];
       err-=dx[steep];
     }
-    if(!_img[x1[1]*_width+x1[0]]!=_v)break;
+    if(!(_img[x1[1]*_width+x1[0]]!=_v))break;
   }
   /*Return the midpoint of the _v segment.*/
   _p[0]=(x0[0]+x1[0]+1<<QR_FINDER_SUBPREC)>>1;

Comments

Thomas Petazzoni Jan. 19, 2016, 10:16 a.m. UTC | #1
Viacheslav,

Thanks for your patch!

On Tue, 19 Jan 2016 12:54:02 +0300, Viacheslav Volkov wrote:
> From b9dd5d73c19d2b7170f722dba61a99655487fe9c Mon Sep 17 00:00:00 2001
> From: Viacheslav Volkov <sv99@inbox.ru>
> Date: Tue, 19 Jan 2016 12:19:29 +0300
> Subject: [PATCH] zbar: Fix gcc5 logical-not-parentheses error
> 
> Fix error: logical not is only applied to the left hand side of comparison
> [-Werror=logical-not-parentheses]
> 
> Signed-off-by: Viacheslav Volkov <sv99@inbox.ru>

Are you sure this is the correct fix? Yes, it fixes the build issue,
but is it what the code intended to do?

> ---
>  zbar/decoder/ean.c  | 4 ++--
>  zbar/qrcode/qrdec.c | 8 ++++----
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/zbar/decoder/ean.c b/zbar/decoder/ean.c
> index c20f538..fe38eaa 100644
> --- a/zbar/decoder/ean.c
> +++ b/zbar/decoder/ean.c
> @@ -294,7 +294,7 @@ static inline zbar_symbol_type_t ean_part_end4
> (ean_pass_t *pass,
>          /* invalid parity combination */
>          return(ZBAR_NONE);
>  
> -    if(!par == fwd) {
> +    if(!(par == fwd)) {

Then par != fwd would be a lot simpler (and ditto below).

But did you analyze the code to make sure that this is actually the
right change?

Thomas
diff mbox

Patch

diff --git a/zbar/decoder/ean.c b/zbar/decoder/ean.c
index c20f538..fe38eaa 100644
--- a/zbar/decoder/ean.c
+++ b/zbar/decoder/ean.c
@@ -294,7 +294,7 @@  static inline zbar_symbol_type_t ean_part_end4
(ean_pass_t *pass,
         /* invalid parity combination */
         return(ZBAR_NONE);
 
-    if(!par == fwd) {
+    if(!(par == fwd)) {
         /* reverse sampled digits */
         unsigned char tmp = pass->raw[1];
         pass->state |= STATE_REV;
@@ -380,7 +380,7 @@  static inline zbar_symbol_type_t ean_part_end7
(ean_decoder_t *ean,
         /* invalid parity combination */
         return(ZBAR_NONE);
 
-    if(!par == fwd) {
+    if(!(par == fwd)) {
         unsigned char i;
         pass->state |= STATE_REV;
         /* reverse sampled digits */
diff --git a/zbar/qrcode/qrdec.c b/zbar/qrcode/qrdec.c
index d8fa802..fd42c33 100644
--- a/zbar/qrcode/qrdec.c
+++ b/zbar/qrcode/qrdec.c
@@ -1219,8 +1219,8 @@  static int qr_finder_quick_crossing_check(const
unsigned char *_img,
    _x1<0||_x1>=_width||_y1<0||_y1>=_height){
     return -1;
   }
-  if(!_img[_y0*_width+_x0]!=_v||!_img[_y1*_width+_x1]!=_v)return 1;
-  if(!_img[(_y0+_y1>>1)*_width+(_x0+_x1>>1)]==_v)return -1;
+  if(!(_img[_y0*_width+_x0]!=_v)||!(_img[_y1*_width+_x1]!=_v))return 1;
+  if(!(_img[(_y0+_y1>>1)*_width+(_x0+_x1>>1)]==_v))return -1;
   return 0;
 }