[pypy-commit] pypy refactor-buffer-api: fix cffi MiniBuffer setslice exception type

bdkearns noreply at buildbot.pypy.org
Thu Apr 24 10:17:22 CEST 2014


Author: Brian Kearns <bdkearns at gmail.com>
Branch: refactor-buffer-api
Changeset: r70926:efb387f6f091
Date: 2014-04-24 04:16 -0400
http://bitbucket.org/pypy/pypy/changeset/efb387f6f091/

Log:	fix cffi MiniBuffer setslice exception type

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
@@ -1,4 +1,4 @@
-from pypy.interpreter.error import oefmt
+from pypy.interpreter.error import oefmt, OperationError
 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
@@ -47,6 +47,14 @@
         W_Buffer.__init__(self, buffer)
         self.keepalive = keepalive
 
+    def descr_setitem(self, space, w_index, w_obj):
+        try:
+            W_Buffer.descr_setitem(self, space, w_index, w_obj)
+        except OperationError as e:
+            if e.match(space, space.w_TypeError):
+                e.w_type = space.w_ValueError
+            raise
+
 MiniBuffer.typedef = TypeDef(
     "buffer",
     __module__ = "_cffi_backend",


More information about the pypy-commit mailing list