[gdk-pixbuf] Fix cppcheck 'shifting signed 32-bit value warning'



commit 209eb5981afe3bce1b31f273a46aa20b037b7d3a
Author: Emmanuel Fleury <emmanuel fleury u-bordeaux fr>
Date:   Wed Mar 27 13:05:39 2019 +0100

    Fix cppcheck 'shifting signed 32-bit value warning'
    
    Changed variable to unsigned and slightly improved algorithm performance
    (stop when n == 0, no need to keep going until the end).
    
    See issue: #96

 gdk-pixbuf/io-bmp.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/gdk-pixbuf/io-bmp.c b/gdk-pixbuf/io-bmp.c
index 13ad6f2bc..4c3ad626a 100644
--- a/gdk-pixbuf/io-bmp.c
+++ b/gdk-pixbuf/io-bmp.c
@@ -626,12 +626,11 @@ static gboolean DecodeColormap (guchar *buff,
 static void
 find_bits (int n, int *lowest, int *n_set)
 {
-       int i;
-
+       *lowest = 0;
        *n_set = 0;
 
-       for (i = 31; i >= 0; i--)
-               if (n & (1 << i)) {
+       for (unsigned int i = 31; n != 0; n <<= 1, i--)
+               if (n & ((unsigned int) 1 << 31)) {
                        *lowest = i;
                        (*n_set)++;
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]