Author: Antonio Cuni <[email protected]>
Branch: faster-rstruct
Changeset: r80807:c4eb83d8e88f
Date: 2015-11-20 16:52 +0100
http://bitbucket.org/pypy/pypy/changeset/c4eb83d8e88f/

Log:    change the inteface: now get_buffer_as_string_maybe also return the
        position inside the string: this will allow to support sub-buffers

diff --git a/rpython/rlib/rstruct/runpack.py b/rpython/rlib/rstruct/runpack.py
--- a/rpython/rlib/rstruct/runpack.py
+++ b/rpython/rlib/rstruct/runpack.py
@@ -39,11 +39,8 @@
         def appendobj(self, value):
             self.value = value
 
-        def get_pos(self):
-            return self.mr.inputpos
-
         def get_buffer_as_string_maybe(self):
-            return self.mr.input
+            return self.mr.input, self.mr.inputpos
 
         def skip(self, size):
             self.read(size) # XXX, could avoid taking the slice
diff --git a/rpython/rlib/rstruct/standardfmttable.py 
b/rpython/rlib/rstruct/standardfmttable.py
--- a/rpython/rlib/rstruct/standardfmttable.py
+++ b/rpython/rlib/rstruct/standardfmttable.py
@@ -138,8 +138,7 @@
 @specialize.arg(0)
 def unpack_fastpath(TYPE, fmtiter):
     size = rffi.sizeof(TYPE)
-    pos = fmtiter.get_pos()
-    strbuf = fmtiter.get_buffer_as_string_maybe()
+    strbuf, pos = fmtiter.get_buffer_as_string_maybe()
     if pos % size != 0 or strbuf is None or not ALLOW_FASTPATH:
         raise CannotUnpack
     fmtiter.skip(size)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to