Don't get stuck in an infinite loop on negative integers!
authorMichael Brown <mcb30@etherboot.org>
Sun, 16 Sep 2007 16:39:29 +0000 (17:39 +0100)
committerMichael Brown <mcb30@etherboot.org>
Fri, 21 Sep 2007 00:14:44 +0000 (01:14 +0100)
src/core/bitops.c

index 75d57bf..53abaae 100644 (file)
@@ -1,10 +1,11 @@
 #include <strings.h>
 
 int __flsl ( long x ) {
-       int r = 0;
+       unsigned long value = x;
+       int ls = 0;
 
-       for ( r = 0 ; x ; r++ ) {
-               x >>= 1;
+       for ( ls = 0 ; value ; ls++ ) {
+               value >>= 1;
        }
-       return r;
+       return ls;
 }