[pypy-commit] pypy default: backout unpacking speed up

justinpeel noreply at buildbot.pypy.org
Sun Aug 28 07:15:47 CEST 2011


Author: Justin Peel <notmuchtotell at 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])


More information about the pypy-commit mailing list