[Python-checkins] cpython: _PyObject_FastCallKeywords() now checks !PyErr_Occurred()

victor.stinner python-checkins at python.org
Wed Jan 18 08:22:58 EST 2017


https://hg.python.org/cpython/rev/ee6e1b1151a8
changeset:   106218:ee6e1b1151a8
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed Jan 18 14:06:38 2017 +0100
summary:
  _PyObject_FastCallKeywords() now checks !PyErr_Occurred()

Issue #29259. All other functions calling functions start with the similar
assertion.

files:
  Objects/abstract.c |  5 +++++
  1 files changed, 5 insertions(+), 0 deletions(-)


diff --git a/Objects/abstract.c b/Objects/abstract.c
--- a/Objects/abstract.c
+++ b/Objects/abstract.c
@@ -2482,6 +2482,11 @@
 _PyObject_FastCallKeywords(PyObject *callable, PyObject **stack, Py_ssize_t nargs,
                            PyObject *kwnames)
 {
+    /* _PyObject_FastCallKeywords() must not be called with an exception set,
+       because it can clear it (directly or indirectly) and so the
+       caller loses its exception */
+    assert(!PyErr_Occurred());
+
     assert(nargs >= 0);
     assert(kwnames == NULL || PyTuple_CheckExact(kwnames));
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list