[pypy-commit] pypy ffi-backend: Fixes

arigo noreply at buildbot.pypy.org
Sun Jul 29 22:51:57 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: ffi-backend
Changeset: r56506:56d5a302013a
Date: 2012-07-29 20:46 +0000
http://bitbucket.org/pypy/pypy/changeset/56d5a302013a/

Log:	Fixes

diff --git a/pypy/jit/codewriter/jtransform.py b/pypy/jit/codewriter/jtransform.py
--- a/pypy/jit/codewriter/jtransform.py
+++ b/pypy/jit/codewriter/jtransform.py
@@ -707,6 +707,16 @@
                               [v_inst, descr, v_value],
                               None)
 
+    def rewrite_op_getsubstruct(self, op):
+        STRUCT = op.args[0].concretetype.TO
+        argname = getattr(STRUCT, '_gckind', 'gc')
+        if argname != 'raw':
+            raise Exception("%r: only supported for gckind=raw" % (op,))
+        ofs = llmemory.offsetof(STRUCT, 'exchange_args')
+        return SpaceOperation('int_add',
+                              [op.args[0], Constant(ofs, lltype.Signed)],
+                              op.result)
+
     def is_typeptr_getset(self, op):
         return (op.args[1].value == 'typeptr' and
                 op.args[0].concretetype.TO._hints.get('typeptr'))
diff --git a/pypy/module/_cffi_backend/ctypefunc.py b/pypy/module/_cffi_backend/ctypefunc.py
--- a/pypy/module/_cffi_backend/ctypefunc.py
+++ b/pypy/module/_cffi_backend/ctypefunc.py
@@ -165,7 +165,7 @@
             cerrno.restore_errno_from(ec)
             clibffi.c_ffi_call(cif_descr.cif,
                                rffi.cast(rffi.VOIDP, funcaddr),
-                               resultdata,
+                               rffi.cast(rffi.VOIDP, resultdata),
                                buffer_array)
             e = cerrno.get_real_errno()
             cerrno.save_errno_into(ec, e)


More information about the pypy-commit mailing list