# HG changeset patch # User Paul Boddie # Date 1253230748 -7200 # Node ID 8d0f465630d2fd6f0ee511e962d876551dedac25 # Parent 63addb8fb052d8251c1916a8c0025686b68118f3 Simplified vint implementation, taking advantage of the cache. diff -r 63addb8fb052 -r 8d0f465630d2 iixr/data.py --- a/iixr/data.py Fri Sep 18 01:08:44 2009 +0200 +++ b/iixr/data.py Fri Sep 18 01:39:08 2009 +0200 @@ -29,21 +29,16 @@ except KeyError: if number >= 0: - # Special case: one byte containing a 7-bit number. - - if number < 128: - return chr(number) - # Write the number from least to most significant digits. bytes = [] - while number != 0: - lsd = number & 127 + while number > 127: + lsd = number & 127 | 128 + bytes.append(chr(lsd)) number = number >> 7 - if number != 0: - lsd |= 128 - bytes.append(chr(lsd)) + else: + bytes.append(chr(number)) return "".join(bytes)