[pypy-commit] pypy PyBuffer: fix translation

rlamy pypy.commits at gmail.com
Wed Apr 12 14:54:09 EDT 2017


Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: PyBuffer
Changeset: r91047:2a790c6d7613
Date: 2017-04-12 19:53 +0100
http://bitbucket.org/pypy/pypy/changeset/2a790c6d7613/

Log:	fix translation

diff --git a/pypy/interpreter/buffer.py b/pypy/interpreter/buffer.py
--- a/pypy/interpreter/buffer.py
+++ b/pypy/interpreter/buffer.py
@@ -284,6 +284,7 @@
         # May be overridden.  No bounds checks.
         return ''.join([self.getitem(i) for i in range(start, stop, step)])
 
+    @signature(types.any(), types.int(), types.int(), returns=types.str())
     def __getslice__(self, start, stop):
         return self.getslice(start, stop, 1, stop - start)
 
diff --git a/pypy/module/_cffi_backend/cbuffer.py b/pypy/module/_cffi_backend/cbuffer.py
--- a/pypy/module/_cffi_backend/cbuffer.py
+++ b/pypy/module/_cffi_backend/cbuffer.py
@@ -65,7 +65,7 @@
                                                       self.buffer.getlength())
         if step not in (0, 1):
             raise oefmt(space.w_NotImplementedError, "")
-        value = space.buffer_w(w_newstring, space.BUF_CONTIG_RO)
+        value = space.buffer_w(w_newstring, space.BUF_CONTIG_RO).as_binary()
         if value.getlength() != size:
             raise oefmt(space.w_ValueError,
                         "cannot modify size of memoryview object")
diff --git a/pypy/module/_cffi_backend/func.py b/pypy/module/_cffi_backend/func.py
--- a/pypy/module/_cffi_backend/func.py
+++ b/pypy/module/_cffi_backend/func.py
@@ -113,7 +113,7 @@
         if not e.match(space, space.w_TypeError):
             raise
         buf = space.buffer_w(w_x, space.BUF_SIMPLE)
-    return buf
+    return buf.as_binary()
 
 def _fetch_as_write_buffer(space, w_x):
     try:
@@ -122,7 +122,7 @@
         if not e.match(space, space.w_TypeError):
             raise
         buf = space.buffer_w(w_x, space.BUF_WRITABLE)
-    return buf
+    return buf.as_binary()
 
 @unwrap_spec(w_ctype=ctypeobj.W_CType)
 def from_buffer(space, w_ctype, w_x):
diff --git a/pypy/module/_io/interp_bufferedio.py b/pypy/module/_io/interp_bufferedio.py
--- a/pypy/module/_io/interp_bufferedio.py
+++ b/pypy/module/_io/interp_bufferedio.py
@@ -1,5 +1,8 @@
 from __future__ import with_statement
 
+from rpython.rlib.signature import signature
+from rpython.rlib import types
+
 from pypy.interpreter.error import OperationError, oefmt
 from pypy.interpreter.typedef import (
     TypeDef, GetSetProperty, generic_new_descr, interp_attrproperty_w)
@@ -285,6 +288,7 @@
 
     # ______________________________________________
 
+    @signature(types.any(), returns=types.int())
     def _readahead(self):
         if self.readable and self.read_end != -1:
             available = self.read_end - self.pos
@@ -325,7 +329,7 @@
                 else:
                     offset = pos
                 if -self.pos <= offset <= available:
-                    newpos = self.pos + offset
+                    newpos = self.pos + int(offset)
                     assert newpos >= 0
                     self.pos = newpos
                     return space.newint(current - available + offset)
diff --git a/pypy/module/_sre/interp_sre.py b/pypy/module/_sre/interp_sre.py
--- a/pypy/module/_sre/interp_sre.py
+++ b/pypy/module/_sre/interp_sre.py
@@ -164,7 +164,7 @@
             string = space.bytes_w(w_string)
             length = len(string)
         else:
-            buf = space.readbuf_w(w_string)
+            buf = space.readbuf_w(w_string).as_binary()
             length = buf.getlength()
             assert length >= 0
         return (length, unicodestr, string, buf)
@@ -523,7 +523,7 @@
         u = space.unicode_w(space.repr(w_s))
         if len(u) > 50:
             u = u[:50]
-        return space.newunicode(u'<_sre.SRE_Match object; span=(%d, %d), match=%s>' % 
+        return space.newunicode(u'<_sre.SRE_Match object; span=(%d, %d), match=%s>' %
                           (start, end, u))
 
     def cannot_copy_w(self):
diff --git a/pypy/module/fcntl/interp_fcntl.py b/pypy/module/fcntl/interp_fcntl.py
--- a/pypy/module/fcntl/interp_fcntl.py
+++ b/pypy/module/fcntl/interp_fcntl.py
@@ -209,7 +209,7 @@
     op = rffi.cast(rffi.INT, op)        # C long => C int
 
     try:
-        rwbuffer = space.writebuf_w(w_arg)
+        rwbuffer = space.writebuf_w(w_arg).as_binary()
     except OperationError as e:
         if not (e.match(space, space.w_TypeError) or
                 e.match(space, space.w_BufferError)):


More information about the pypy-commit mailing list