From: Ethan Furman Date: Fri, 2 Sep 2016 22:50:21 +0000 (-0700) Subject: issue23591: optimize _high_bit() X-Git-Tag: v3.6.0b1~494 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=044395306702fc47e63b43d5ad961a127c19b262;p=thirdparty%2FPython%2Fcpython.git issue23591: optimize _high_bit() --- diff --git a/Lib/enum.py b/Lib/enum.py index 83696313a45e..8d23933d3ed7 100644 --- a/Lib/enum.py +++ b/Lib/enum.py @@ -784,13 +784,8 @@ class IntFlag(int, Flag): def _high_bit(value): - """return the highest bit set in value""" - bit = 0 - while 'looking for the highest bit': - limit = 2 ** bit - if limit > value: - return bit - 1 - bit += 1 + """returns index of highest bit, or -1 if value is zero or negative""" + return value.bit_length() - 1 if value > 0 else -1 def unique(enumeration): """Class decorator for enumerations ensuring unique member values."""