[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