[pypy-commit] pypy cpyext-cleanup: Raise an exception inside mangle_name() when the name is invalid
rlamy
pypy.commits at gmail.com
Wed Jan 4 19:43:21 EST 2017
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: cpyext-cleanup
Changeset: r89370:75557bb61dfd
Date: 2017-01-05 00:42 +0000
http://bitbucket.org/pypy/pypy/changeset/75557bb61dfd/
Log: Raise an exception inside mangle_name() when the name is invalid
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
@@ -1195,14 +1195,13 @@
elif name.startswith('_Py'):
return '_' + prefix + name[3:]
else:
- return None
+ raise ValueError("Error converting '%s'" % name)
def generate_decls_and_callbacks(db, prefix=''):
"NOT_RPYTHON"
pypy_macros = []
for name in SYMBOLS_C:
newname = mangle_name(prefix, name)
- assert newname, name
pypy_macros.append('#define %s %s' % (name, newname))
# Generate defines
@@ -1244,7 +1243,6 @@
if not func:
continue
_name = mangle_name(prefix, name)
- assert _name is not None, 'error converting %s' % name
header.append("#define %s %s" % (name, _name))
restype, args = c_function_signature(db, func)
header.append("PyAPI_FUNC(%s) %s(%s);" % (restype, name, args))
@@ -1423,7 +1421,7 @@
for name, func in header_functions.iteritems():
if not func:
continue
- newname = mangle_name(prefix, name) or name
+ newname = mangle_name(prefix, name)
deco = entrypoint_lowlevel("cpyext", func.argtypes, newname,
relax=True)
deco(func.get_wrapper(space))
diff --git a/pypy/module/cpyext/slotdefs.py b/pypy/module/cpyext/slotdefs.py
--- a/pypy/module/cpyext/slotdefs.py
+++ b/pypy/module/cpyext/slotdefs.py
@@ -7,7 +7,7 @@
from rpython.rlib import rgc # Force registration of gc.collect
from pypy.module.cpyext.api import (
cpython_api, generic_cpy_call, PyObject, Py_ssize_t, Py_TPFLAGS_CHECKTYPES,
- mangle_name, pypy_decl, Py_buffer, Py_bufferP)
+ pypy_decl, Py_buffer, Py_bufferP)
from pypy.module.cpyext.typeobjectdefs import (
unaryfunc, ternaryfunc, PyTypeObjectPtr, binaryfunc,
getattrfunc, getattrofunc, setattrofunc, lenfunc, ssizeargfunc, inquiry,
@@ -351,7 +351,7 @@
else:
#do not call twice
return
- if self.releasebufferproc:
+ if self.releasebufferproc:
func_target = rffi.cast(releasebufferproc, self.releasebufferproc)
with lltype.scoped_alloc(Py_buffer) as pybuf:
pybuf.c_buf = self.ptr
@@ -416,7 +416,7 @@
size = generic_cpy_call(space, func_target, w_self, index, ptr)
if size < 0:
space.fromcache(State).check_and_raise_exception(always=True)
- buf = CPyBuffer(space, ptr[0], size, w_self,
+ buf = CPyBuffer(space, ptr[0], size, w_self,
releasebuffer=releasebuffer)
fq.register_finalizer(buf)
return space.newbuffer(buf)
@@ -522,7 +522,7 @@
w_type = space.gettypeobject(typedef)
header = pypy_decl
- if mangle_name('', typedef.name) is None:
+ if not (name.startswith('Py') or name.startswith('_Py')):
header = None
handled = False
# unary functions
More information about the pypy-commit
mailing list