From 03ac090c5f8d5b281e56c5f5431c1754fd4efe5c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 12 Mar 2020 13:37:02 +0100 Subject: [PATCH] bpo-39884: Add method name in "bad call flags" error (GH-18944) (GH-18956) PyDescr_NewMethod() and PyCFunction_NewEx() now include the method name in the SystemError "bad call flags" error message to ease debug. (cherry picked from commit c7d2d69d95b263ee5f83511bc6fbe53acdc24ea3) --- .../NEWS.d/next/C API/2020-03-12-00-27-26.bpo-39884.CGOJBO.rst | 2 ++ Objects/descrobject.c | 3 ++- Objects/methodobject.c | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/C API/2020-03-12-00-27-26.bpo-39884.CGOJBO.rst diff --git a/Misc/NEWS.d/next/C API/2020-03-12-00-27-26.bpo-39884.CGOJBO.rst b/Misc/NEWS.d/next/C API/2020-03-12-00-27-26.bpo-39884.CGOJBO.rst new file mode 100644 index 00000000000..c65dfdc2124 --- /dev/null +++ b/Misc/NEWS.d/next/C API/2020-03-12-00-27-26.bpo-39884.CGOJBO.rst @@ -0,0 +1,2 @@ +:c:func:`PyDescr_NewMethod` and :c:func:`PyCFunction_NewEx` now include the +method name in the SystemError "bad call flags" error message to ease debug. diff --git a/Objects/descrobject.c b/Objects/descrobject.c index 119be35db08..729f42c50c8 100644 --- a/Objects/descrobject.c +++ b/Objects/descrobject.c @@ -892,7 +892,8 @@ PyDescr_NewMethod(PyTypeObject *type, PyMethodDef *method) vectorcall = method_vectorcall_O; break; default: - PyErr_SetString(PyExc_SystemError, "bad call flags"); + PyErr_Format(PyExc_SystemError, + "%s() method: bad call flags", method->ml_name); return NULL; } diff --git a/Objects/methodobject.c b/Objects/methodobject.c index 3494f11d80f..3604a55e5a1 100644 --- a/Objects/methodobject.c +++ b/Objects/methodobject.c @@ -62,7 +62,8 @@ PyCFunction_NewEx(PyMethodDef *ml, PyObject *self, PyObject *module) vectorcall = cfunction_vectorcall_O; break; default: - PyErr_SetString(PyExc_SystemError, "bad call flags"); + PyErr_Format(PyExc_SystemError, + "%s() method: bad call flags", ml->ml_name); return NULL; }