From ffd3d4834b5a0f081b3910428408cd6291465e6c Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Mon, 3 Feb 2014 12:12:01 -0800 Subject: [PATCH] INLINE and reimplement get_unsigned_bits(). The new implementation disagrees when the argument is equal to 2**n but that is never called in practice and based on how it is used the new implementation is correct in that case. Change-Id: Ifbac4ad87d459fe6bd2fd0f400c0340f96617342 --- vp9/common/vp9_common.h | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/vp9/common/vp9_common.h b/vp9/common/vp9_common.h index 69964dae8..2dccb7031 100644 --- a/vp9/common/vp9_common.h +++ b/vp9/common/vp9_common.h @@ -18,6 +18,7 @@ #include "./vpx_config.h" #include "vpx_mem/vpx_mem.h" #include "vpx/vpx_integer.h" +#include "vp9/common/vp9_systemdependent.h" #ifdef __cplusplus extern "C" { @@ -59,16 +60,8 @@ static INLINE double fclamp(double value, double low, double high) { return value < low ? low : (value > high ? high : value); } -static int get_unsigned_bits(unsigned int num_values) { - int cat = 0; - if (num_values <= 1) - return 0; - num_values--; - while (num_values > 0) { - cat++; - num_values >>= 1; - } - return cat; +static INLINE int get_unsigned_bits(unsigned int num_values) { + return num_values > 0 ? get_msb(num_values) + 1 : 0; } #if CONFIG_DEBUG