Author: Armin Rigo <ar...@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) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit