From eda9ce148714947c164ff72b720e2645ca2cd5fb Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 22 Jul 2023 16:12:17 +0200 Subject: [PATCH] gh-106320: Move _PyNone_Type to the internal C API (#107030) Move private types _PyNone_Type and _PyNotImplemented_Type to internal C API. --- Include/cpython/object.h | 3 --- Include/internal/pycore_object.h | 4 ++++ Modules/_pickle.c | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Include/cpython/object.h b/Include/cpython/object.h index cd421b4f7e0d49..0e5b6acb43b416 100644 --- a/Include/cpython/object.h +++ b/Include/cpython/object.h @@ -377,9 +377,6 @@ PyAPI_FUNC(PyObject *) _PyObject_FunctionStr(PyObject *); #endif -PyAPI_DATA(PyTypeObject) _PyNone_Type; -PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type; - /* Maps Py_LT to Py_GT, ..., Py_GE to Py_LE. * Defined in object.c. */ diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 2358f48738a905..90588daa64cc3b 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -438,6 +438,10 @@ extern PyObject* _PyCFunctionWithKeywords_TrampolineCall( (meth)((self), (args), (kw)) #endif // __EMSCRIPTEN__ && PY_CALL_TRAMPOLINE +// _pickle shared extension uses _PyNone_Type and _PyNotImplemented_Type +PyAPI_DATA(PyTypeObject) _PyNone_Type; +PyAPI_DATA(PyTypeObject) _PyNotImplemented_Type; + #ifdef __cplusplus } #endif diff --git a/Modules/_pickle.c b/Modules/_pickle.c index ea44b494cdd7cd..f2e98c10ef7188 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -12,6 +12,7 @@ #include "pycore_bytesobject.h" // _PyBytesWriter #include "pycore_ceval.h" // _Py_EnterRecursiveCall() #include "pycore_moduleobject.h" // _PyModule_GetState() +#include "pycore_object.h" // _PyNone_Type #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_runtime.h" // _Py_ID() #include "structmember.h" // PyMemberDef