diff options
Diffstat (limited to 'generic/tclExecute.c')
| -rw-r--r-- | generic/tclExecute.c | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index c6adfd6..a1121ab 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -9554,31 +9554,10 @@ TclLog2( long long value) /* The integer for which to compute the log * base 2. The maximum output is 31 */ { - int result = 0; - - if (value > 0x7FFFFFFF) { - return 31; - } - if (value > 0xFFFF) { - value >>= 16; - result += 16; - } - if (value > 0xFF) { - value >>= 8; - result += 8; - } - if (value > 0xF) { - value >>= 4; - result += 4; - } - if (value > 0x3) { - value >>= 2; - result += 2; - } - if (value > 0x1) { - result++; - } - return result; + return (value > 0) ? ( + (value > 0x7FFFFFFF) ? + 31 : TclMSB((unsigned long long) value) + ) : 0; } /* |
