summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErlend Egeberg Aasland <erlend.aasland@innova.no>2021-02-17 10:51:08 (GMT)
committerGitHub <noreply@github.com>2021-02-17 10:51:08 (GMT)
commitcd80f430daa7dfe7feeb431ed34f88db5f64aa30 (patch)
tree0f9872a24b851c515b3ab1853bb7cd834f7cee67
parent801bb0b5035f8eeafe389dc082c02dfafaa07f6a (diff)
downloadcpython-cd80f430daa7dfe7feeb431ed34f88db5f64aa30.zip
cpython-cd80f430daa7dfe7feeb431ed34f88db5f64aa30.tar.gz
cpython-cd80f430daa7dfe7feeb431ed34f88db5f64aa30.tar.bz2
bpo-40170: Always define PyExceptionClass_Name() as a function (GH-24553)
Remove macro variant of PyExceptionClass_Name().
-rw-r--r--Include/cpython/pyerrors.h4
-rw-r--r--Misc/NEWS.d/next/C API/2021-02-16-22-29-39.bpo-40170.ahHmOo.rst3
-rw-r--r--Objects/exceptions.c2
3 files changed, 3 insertions, 6 deletions
diff --git a/Include/cpython/pyerrors.h b/Include/cpython/pyerrors.h
index c2500d9..6711e8b 100644
--- a/Include/cpython/pyerrors.h
+++ b/Include/cpython/pyerrors.h
@@ -78,10 +78,6 @@ PyAPI_FUNC(void) _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, Py
PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *);
-/* */
-
-#define PyExceptionClass_Name(x) (((PyTypeObject*)(x))->tp_name)
-
/* Convenience functions */
#ifdef MS_WINDOWS
diff --git a/Misc/NEWS.d/next/C API/2021-02-16-22-29-39.bpo-40170.ahHmOo.rst b/Misc/NEWS.d/next/C API/2021-02-16-22-29-39.bpo-40170.ahHmOo.rst
new file mode 100644
index 0000000..348fcce
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-02-16-22-29-39.bpo-40170.ahHmOo.rst
@@ -0,0 +1,3 @@
+:c:func:`PyExceptionClass_Name` is now always declared as a function, in
+order to hide implementation details. The macro accessed
+:c:member:`PyTypeObject.tp_name` directly. Patch by Erlend E. Aasland.
diff --git a/Objects/exceptions.c b/Objects/exceptions.c
index d482493..62cec9a 100644
--- a/Objects/exceptions.c
+++ b/Objects/exceptions.c
@@ -364,8 +364,6 @@ PyException_SetContext(PyObject *self, PyObject *context)
Py_XSETREF(_PyBaseExceptionObject_cast(self)->context, context);
}
-#undef PyExceptionClass_Name
-
const char *
PyExceptionClass_Name(PyObject *ob)
{