Message409776
I got more debug symbols:
python.js:235 Uncaught RuntimeError: null function or function signature mismatch
at _PyEval_EvalFrameDefault (ceval.c:4247)
at _PyEval_EvalFrame (pycore_ceval.h:48)
at gen_send_ex2 (genobject.c:219)
at gen_iternext (genobject.c:583)
at builtin_any (bltinmodule.c:384)
at cfunction_vectorcall_O (methodobject.c:516)
at _PyObject_VectorcallTstate.11 (pycore_call.h:89)
at PyObject_Vectorcall (call.c:298)
at _PyEval_EvalFrameDefault (ceval.c:4625)
at _PyEval_EvalFrame.1 (pycore_ceval.h:48)
The culprit is
PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter);
in the TARGET(FOR_ITER) target. An additional NULL check resolves the problem.
index 953876f6226..390400b3246 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4244,7 +4244,12 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr
PREDICTED(FOR_ITER);
/* before: [iter]; after: [iter, iter()] *or* [] */
PyObject *iter = TOP();
- PyObject *next = (*Py_TYPE(iter)->tp_iternext)(iter);
+ PyObject *(*iternext)(PyObject *) = *Py_TYPE(iter)->tp_iternext;
+ if (iternext == NULL) {
+ PyErr_BadInternalCall();
+ goto error;
+ }
+ PyObject *next = iternext(iter);
if (next != NULL) {
PUSH(next);
PREDICT(STORE_FAST); |
|
Date |
User |
Action |
Args |
2022-01-05 15:37:00 | christian.heimes | set | recipients:
+ christian.heimes, Mark.Shannon, pablogsal, brandtbucher, Zabolekar |
2022-01-05 15:37:00 | christian.heimes | set | messageid: <1641397020.64.0.0317248578545.issue46009@roundup.psfhosted.org> |
2022-01-05 15:37:00 | christian.heimes | link | issue46009 messages |
2022-01-05 15:37:00 | christian.heimes | create | |
|