Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r68366:5d45e9c2036b
Date: 2013-12-03 14:24 +0100
http://bitbucket.org/pypy/pypy/changeset/5d45e9c2036b/

Log:    Next try

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
@@ -859,18 +859,22 @@
     setup_init_functions(eci, translating=False)
     return modulename.new(ext='')
 
+def mangle_name(prefix, name):
+    if name.startswith('Py'):
+        return prefix + name[2:]
+    elif name.startswith('_Py'):
+        return '_' + prefix + name[3:]
+    else:
+        return None
+
 def generate_macros(export_symbols, prefix):
     "NOT_RPYTHON"
     pypy_macros = []
     renamed_symbols = []
     for name in export_symbols:
         name = name.replace("#", "")
-        if name.startswith('Py'):
-            newname = prefix + name[2:]
-        elif name.startswith('_Py'):
-            newname = '_' + prefix + name[3:]
-        else:
-            assert False, name
+        newname = mangle_name(prefix, name)
+        assert newname, name
         pypy_macros.append('#define %s %s' % (name, newname))
         if name.startswith("PyExc_"):
             pypy_macros.append('#define _%s _%s' % (name, newname))
@@ -1066,7 +1070,8 @@
         export_struct(name, struct)
 
     for name, func in FUNCTIONS.iteritems():
-        deco = entrypoint_lowlevel("cpyext", func.argtypes, name, relax=True)
+        newname = mangle_name('PyPy', name) or name
+        deco = entrypoint_lowlevel("cpyext", func.argtypes, newname, 
relax=True)
         deco(func.get_wrapper(space))
 
     setup_init_functions(eci, translating=True)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to