gh-106320: Remove private _PyTraceback functions (#108453)
https://github.com/python/cpython/commit/546cab84448b892c92e68d9c1a3d3b58c13... commit: 546cab84448b892c92e68d9c1a3d3b58c13b3463 branch: main author: Victor Stinner <vstinner@python.org> committer: vstinner <vstinner@python.org> date: 2023-08-24T23:35:47Z summary: gh-106320: Remove private _PyTraceback functions (#108453) Move private functions to the internal C API (pycore_traceback.h): * _Py_DisplaySourceLine() * _PyTraceback_Add() files: M Include/cpython/traceback.h M Include/internal/pycore_traceback.h M Modules/_ctypes/callproc.c M Modules/pyexpat.c M Python/_warnings.c diff --git a/Include/cpython/traceback.h b/Include/cpython/traceback.h index a4e087b2b4ece..81c51944f136f 100644 --- a/Include/cpython/traceback.h +++ b/Include/cpython/traceback.h @@ -11,6 +11,3 @@ struct _traceback { int tb_lasti; int tb_lineno; }; - -PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int, int *, PyObject **); -PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int); diff --git a/Include/internal/pycore_traceback.h b/Include/internal/pycore_traceback.h index 21fb4a25a0fac..01b3f5b6b26d2 100644 --- a/Include/internal/pycore_traceback.h +++ b/Include/internal/pycore_traceback.h @@ -8,6 +8,12 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +// Export for '_ctypes' shared extension +PyAPI_FUNC(int) _Py_DisplaySourceLine(PyObject *, PyObject *, int, int, int *, PyObject **); + +// Export for 'pyexact' shared extension +PyAPI_FUNC(void) _PyTraceback_Add(const char *, const char *, int); + /* Write the Python traceback into the file 'fd'. For example: Traceback (most recent call first): diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index f9535db4f57c0..fc08c42bd3574 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -101,8 +101,10 @@ module _ctypes #define DONT_USE_SEH #endif -#include "pycore_runtime.h" // _PyRuntime -#include "pycore_global_objects.h" // _Py_ID() +#include "pycore_runtime.h" // _PyRuntime +#include "pycore_global_objects.h"// _Py_ID() +#include "pycore_traceback.h" // _PyTraceback_Add() + #include "clinic/callproc.c.h" #define CTYPES_CAPSULE_NAME_PYMEM "_ctypes pymem" diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index a8ce84c0bb9f0..52dd06cd3c818 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -5,6 +5,7 @@ #include "Python.h" #include "pycore_import.h" // _PyImport_SetModule() #include "pycore_pyhash.h" // _Py_HashSecret +#include "pycore_traceback.h" // _PyTraceback_Add() #include <ctype.h> #include <stddef.h> // offsetof() diff --git a/Python/_warnings.c b/Python/_warnings.c index 9e562d7ba7f6a..4b7fb88824714 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -1,13 +1,12 @@ #include "Python.h" #include "pycore_dict.h" // _PyDict_GetItemWithError() -#include "pycore_frame.h" -#include "pycore_initconfig.h" #include "pycore_interp.h" // PyInterpreterState.warnings #include "pycore_long.h" // _PyLong_GetZero() -#include "pycore_pyerrors.h" +#include "pycore_pyerrors.h" // _PyErr_Occurred() #include "pycore_pylifecycle.h" // _Py_IsInterpreterFinalizing() #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_sysmodule.h" // _PySys_GetAttr() +#include "pycore_traceback.h" // _Py_DisplaySourceLine() #include "clinic/_warnings.c.h"
participants (1)
-
vstinner