[pypy-issue] [issue1134] [cpyext] wrap_inquirypred not implemented
Stefan Behnel
tracker at bugs.pypy.org
Sat Apr 21 19:09:33 CEST 2012
New submission from Stefan Behnel <stefan_ml at behnel.de>:
I'm getting a crash trying to port lxml:
RPython traceback:
File "interpreter_gateway.c", line 1396, in
BuiltinCodePassThroughArguments1_funcrun_obj
File "module_cpyext_slotdefs.c", line 2858, in wrap_inquirypred
Fatal RPython error: NotImplementedError
This happens while calling PyObject_IsTrue() on an extension type instance that
implements the __nonzero__ slot. The only reference to "wrap_inquirypred" that I
can find in the sources is in pypy/module/cpyext/slotdefs.py, where it is being
used to configure the slot:
UNSLOT("__nonzero__", nb_nonzero, slot_nb_nonzero, wrap_inquirypred,
"x != 0"),
but the actual implementation is missing. CPython implements it like this:
static PyObject *
wrap_inquirypred(PyObject *self, PyObject *args, void *wrapped)
{
inquiry func = (inquiry)wrapped;
int res;
if (!check_num_args(args, 0))
return NULL;
res = (*func)(self);
if (res == -1 && PyErr_Occurred())
return NULL;
return PyBool_FromLong((long)res);
}
where inquiry is defined like this:
typedef int (*inquiry)(PyObject *);
----------
messages: 4278
nosy: pypy-issue, sbehnel
priority: bug
status: unread
title: [cpyext] wrap_inquirypred not implemented
________________________________________
PyPy bug tracker <tracker at bugs.pypy.org>
<https://bugs.pypy.org/issue1134>
________________________________________
More information about the pypy-issue
mailing list