Author: Justin Peel <notmuchtot...@gmail.com> Branch: Changeset: r46846:14f152109578 Date: 2011-08-27 23:12 -0600 http://bitbucket.org/pypy/pypy/changeset/14f152109578/
Log: backout unpacking speed up diff --git a/pypy/module/struct/formatiterator.py b/pypy/module/struct/formatiterator.py --- a/pypy/module/struct/formatiterator.py +++ b/pypy/module/struct/formatiterator.py @@ -154,13 +154,6 @@ self.inputpos = end return s - def get_pos_and_advance(self, count): - pos = self.inputpos - self.inputpos += count - if self.inputpos > len(self.input): - raise StructError("unpack str size too short for format") - return pos - def appendobj(self, value): self.result_w.append(self.space.wrap(value)) appendobj._annspecialcase_ = 'specialize:argtype(1)' diff --git a/pypy/rlib/rstruct/standardfmttable.py b/pypy/rlib/rstruct/standardfmttable.py --- a/pypy/rlib/rstruct/standardfmttable.py +++ b/pypy/rlib/rstruct/standardfmttable.py @@ -198,8 +198,8 @@ @specialize.argtype(0) def unpack_int(fmtiter): intvalue = inttype(0) - s = fmtiter.input - idx = fmtiter.get_pos_and_advance(size) + s = fmtiter.read(size) + idx = 0 if fmtiter.bigendian: for i in unroll_range_size: x = ord(s[idx]) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit