[pypy-commit] pypy default: merge reflex-support into default: fixes for new buffer interfaces

wlav noreply at buildbot.pypy.org
Fri Apr 25 10:15:26 CEST 2014


Author: Wim Lavrijsen <WLavrijsen at lbl.gov>
Branch: 
Changeset: r70969:4b806e538c61
Date: 2014-04-25 01:14 -0700
http://bitbucket.org/pypy/pypy/changeset/4b806e538c61/

Log:	merge reflex-support into default: fixes for new buffer interfaces

diff --git a/pypy/module/cppyy/converter.py b/pypy/module/cppyy/converter.py
--- a/pypy/module/cppyy/converter.py
+++ b/pypy/module/cppyy/converter.py
@@ -63,7 +63,7 @@
 def get_rawbuffer(space, w_obj):
     # raw buffer
     try:
-        buf = space.buffer_w(w_obj, space.BUF_SIMPLE)
+        buf = space.readbuf_w(w_obj)
         return rffi.cast(rffi.VOIDP, buf.get_raw_address())
     except Exception:
         pass
@@ -163,7 +163,7 @@
     def to_memory(self, space, w_obj, w_value, offset):
         # copy the full array (uses byte copy for now)
         address = rffi.cast(rffi.CCHARP, self._get_raw_address(space, w_obj, offset))
-        buf = space.buffer_w(w_value, space.BUF_SIMPLE)
+        buf = space.readbuf_w(w_value)
         # TODO: report if too many items given?
         for i in range(min(self.size*self.typesize, buf.getlength())):
             address[i] = buf.getitem(i)
@@ -204,7 +204,7 @@
         # copy only the pointer value
         rawobject = get_rawobject_nonnull(space, w_obj)
         byteptr = rffi.cast(rffi.CCHARPP, capi.direct_ptradd(rawobject, offset))
-        buf = space.buffer_w(w_value, space.BUF_SIMPLE)
+        buf = space.readbuf_w(w_value)
         try:
             byteptr[0] = buf.get_raw_address()
         except ValueError:
diff --git a/pypy/module/cppyy/test/test_zjit.py b/pypy/module/cppyy/test/test_zjit.py
--- a/pypy/module/cppyy/test/test_zjit.py
+++ b/pypy/module/cppyy/test/test_zjit.py
@@ -104,6 +104,7 @@
         class dummy: pass
         self.config = dummy()
         self.config.translating = False
+        self.BUF_SIMPLE = 1
 
     def issequence_w(self, w_obj):
         return True
@@ -132,7 +133,10 @@
         return w_obj
     interp_w._annspecialcase_ = 'specialize:arg(1)'
 
-    def buffer_w(self, w_obj):
+    def buffer_w(self, w_obj, flags):
+        return FakeBuffer(w_obj)
+
+    def readbuf_w(self, w_obj):
         return FakeBuffer(w_obj)
 
     def exception_match(self, typ, sub):


More information about the pypy-commit mailing list