Author: Matti Picus <matti.pi...@gmail.com> Branch: missing-tp_new Changeset: r88605:bbee8f771d3c Date: 2016-11-23 23:02 +0200 http://bitbucket.org/pypy/pypy/changeset/bbee8f771d3c/
Log: raise exception on failure even when retval is not PyObject diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py --- a/pypy/module/cpyext/api.py +++ b/pypy/module/cpyext/api.py @@ -875,6 +875,7 @@ retval = fatal_value boxed_args = () tb = None + state = space.fromcache(State) try: if not we_are_translated() and DEBUG_WRAPPER: print >>sys.stderr, callable, @@ -893,7 +894,6 @@ boxed_args += (arg_conv, ) if pygilstate_ensure: boxed_args += (args[-1], ) - state = space.fromcache(State) try: result = callable(space, *boxed_args) if not we_are_translated() and DEBUG_WRAPPER: @@ -939,6 +939,7 @@ except Exception as e: unexpected_exception(pname, e, tb) _restore_gil_state(pygilstate_release, gilstate, gil_release, _gil_auto, tid) + state.check_and_raise_exception(always=True) return fatal_value assert lltype.typeOf(retval) == restype _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit