diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-07-15 23:02:12 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-07-15 23:02:12 (GMT) |
commit | f243ee4055c8ed334e048e494814d557a02f72b3 (patch) | |
tree | 43960b9b008be11a0a3199f9a8308276eb87e940 | |
parent | ceceaa00bab93bfd8b0035e4ad482bba74ae4f8e (diff) | |
download | cpython-f243ee4055c8ed334e048e494814d557a02f72b3.zip cpython-f243ee4055c8ed334e048e494814d557a02f72b3.tar.gz cpython-f243ee4055c8ed334e048e494814d557a02f72b3.tar.bz2 |
Issue #18408: add more assertions on PyErr_Occurred() in ceval.c to detect bugs
earlier
-rw-r--r-- | Objects/abstract.c | 3 | ||||
-rw-r--r-- | Python/ceval.c | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/Objects/abstract.c b/Objects/abstract.c index 6896600..6c8c561 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -2111,8 +2111,7 @@ PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) "NULL result without error in PyObject_Call"); } #else - if (result == NULL) - assert(PyErr_Occurred()); + assert(result != NULL || PyErr_Occurred()); #endif return result; } diff --git a/Python/ceval.c b/Python/ceval.c index 5a35524..2d84c09 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4216,6 +4216,8 @@ call_function(PyObject ***pp_stack, int oparg READ_TIMESTAMP(*pintr1); Py_DECREF(func); } + assert((x != NULL && !PyErr_Occurred()) + || (x == NULL && PyErr_Occurred())); /* Clear the stack of the function object. Also removes the arguments in case they weren't consumed already @@ -4509,6 +4511,8 @@ ext_call_fail: Py_XDECREF(callargs); Py_XDECREF(kwdict); Py_XDECREF(stararg); + assert((result != NULL && !PyErr_Occurred()) + || (result == NULL && PyErr_Occurred())); return result; } |