1.1 --- a/iixr/positions.py Fri Sep 18 21:07:35 2009 +0200
1.2 +++ b/iixr/positions.py Fri Sep 18 22:21:25 2009 +0200
1.3 @@ -19,7 +19,8 @@
1.4 """
1.5
1.6 from iixr.files import *
1.7 -from iixr.data import vint
1.8 +from iixr.data import vint, vint_to_array
1.9 +from array import array
1.10
1.11 class PositionWriter(FileWriter):
1.12
1.13 @@ -44,18 +45,19 @@
1.14 # Write the document number delta.
1.15 # Write the number of positions.
1.16
1.17 - output = [docnum - self.last_docnum, len(positions)]
1.18 + output = array('B')
1.19 + vint_to_array(docnum - self.last_docnum, output)
1.20 + vint_to_array(len(positions), output)
1.21
1.22 # Write the position deltas.
1.23
1.24 - append = output.append
1.25 last = 0
1.26
1.27 for position in positions:
1.28 - append(position - last)
1.29 + vint_to_array(position - last, output)
1.30 last = position
1.31
1.32 - self.f.write("".join([vint(x) for x in output]))
1.33 + output.tofile(self.f)
1.34
1.35 self.last_docnum = docnum
1.36