[pypy-commit] pypy default: Fix (I think): when calling C functions that call back some RPython

arigo noreply at buildbot.pypy.org
Wed Jan 22 13:11:39 CET 2014


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r68842:9bfd0a649773
Date: 2014-01-22 13:10 +0100
http://bitbucket.org/pypy/pypy/changeset/9bfd0a649773/

Log:	Fix (I think): when calling C functions that call back some RPython
	functions, never use _nowrapped=True. This breaks e.g. asmgcc's
	stack tracing and triggers an assertion in debug builds. Instead, I
	think that just saying "releasegil=False" is what we need here,
	according to c23cd52909fb.

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
@@ -692,11 +692,11 @@
     else:
         prefix = 'cpyexttest'
     init_buffer = rffi.llexternal('_%s_init_bufferobject' % prefix, [], lltype.Void,
-                                  compilation_info=eci, _nowrapper=True)
+                                  compilation_info=eci, releasegil=False)
     init_pycobject = rffi.llexternal('_%s_init_pycobject' % prefix, [], lltype.Void,
-                                     compilation_info=eci, _nowrapper=True)
+                                     compilation_info=eci, releasegil=False)
     init_capsule = rffi.llexternal('_%s_init_capsule' % prefix, [], lltype.Void,
-                                   compilation_info=eci, _nowrapper=True)
+                                   compilation_info=eci, releasegil=False)
     INIT_FUNCTIONS.extend([
         lambda space: init_buffer(),
         lambda space: init_pycobject(),


More information about the pypy-commit mailing list