1.1 --- a/iixr/data.py Fri Sep 18 01:39:08 2009 +0200
1.2 +++ b/iixr/data.py Fri Sep 18 21:07:35 2009 +0200
1.3 @@ -18,6 +18,8 @@
1.4 with this program. If not, see <http://www.gnu.org/licenses/>.
1.5 """
1.6
1.7 +from array import array
1.8 +
1.9 vint_cache = {}
1.10
1.11 def vint(number):
1.12 @@ -31,23 +33,22 @@
1.13
1.14 # Write the number from least to most significant digits.
1.15
1.16 - bytes = []
1.17 + bytes = array('B')
1.18
1.19 while number > 127:
1.20 - lsd = number & 127 | 128
1.21 - bytes.append(chr(lsd))
1.22 + bytes.append(number & 127 | 128)
1.23 number = number >> 7
1.24 else:
1.25 - bytes.append(chr(number))
1.26 + bytes.append(number)
1.27
1.28 - return "".join(bytes)
1.29 + return bytes.tostring()
1.30
1.31 # Negative numbers are not supported.
1.32
1.33 else:
1.34 raise ValueError, "Number %r is negative." % number
1.35
1.36 -for i in xrange(0, 1024):
1.37 +for i in xrange(0, 65536):
1.38 vint_cache[i] = vint(i)
1.39
1.40 # vim: tabstop=4 expandtab shiftwidth=4