Author: Manuel Jacob Branch: py3k-memoryview Changeset: r71682:94e75ac81672 Date: 2014-05-23 09:56 +0200 http://bitbucket.org/pypy/pypy/changeset/94e75ac81672/
Log: Fix translation. 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 @@ -3,7 +3,6 @@ from pypy.interpreter.gateway import unwrap_spec, interp2app from pypy.interpreter.typedef import TypeDef, make_weakref_descr from pypy.module._cffi_backend import cdataobj, ctypeptr, ctypearray -from pypy.objspace.std.memoryobject import _buffer_setitem from rpython.rlib.buffer import Buffer from rpython.rtyper.annlowlevel import llstr @@ -43,8 +42,6 @@ copy_string_to_raw(llstr(string), raw_cdata, 0, len(string)) -# Override the typedef to narrow down the interface that's exposed to app-level - class MiniBuffer(W_Root): def __init__(self, buffer, keepalive=None): self.buffer = buffer @@ -65,7 +62,18 @@ return space.wrapbytes(res) def descr_setitem(self, space, w_index, w_newstring): - _buffer_setitem(space, self.buffer, w_index, w_newstring) + start, stop, step, size = space.decode_index4(w_index, + self.buffer.getlength()) + if step not in (0, 1): + raise oefmt(space.w_NotImplementedError, "") + value = space.buffer_w(w_newstring, space.BUF_CONTIG_RO) + if value.getlength() != size: + raise oefmt(space.w_ValueError, + "cannot modify size of memoryview object") + if step == 0: # index only + self.buffer.setitem(start, value.getitem(0)) + elif step == 1: + self.buffer.setslice(start, value.as_str()) MiniBuffer.typedef = TypeDef( _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit