Add new clz function which works with input 0.
authorMiroslav Lichvar <mlichvar@redhat.com>
Tue, 28 Aug 2012 09:58:40 +0000 (11:58 +0200)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Tue, 28 Aug 2012 11:17:15 +0000 (21:17 +1000)
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
src/libFLAC/include/private/bitmath.h

index d32b1a7..4e60f78 100644 (file)
@@ -64,7 +64,6 @@ static inline unsigned int FLAC__clz_soft_uint32(unsigned int word)
     };
 
     return (word) > 0xffffff ? byte_to_unary_table[(word) >> 24] :
-    !(word) ? 32 :
     (word) > 0xffff ? byte_to_unary_table[(word) >> 16] + 8 :
     (word) > 0xff ? byte_to_unary_table[(word) >> 8] + 16 :
     byte_to_unary_table[(word)] + 24;
@@ -88,6 +87,14 @@ static inline unsigned int FLAC__clz_uint32(FLAC__uint32 v)
 #endif
 }
 
+/* This one works with input 0 */
+static inline unsigned int FLAC__clz2_uint32(FLAC__uint32 v)
+{
+    if (!v)
+        return 32;
+    return FLAC__clz_uint32(v);
+}
+
 /* An example of what FLAC__bitmath_ilog2() computes:
  *
  * ilog2( 0) = undefined