Skip to content

Commit 0a28f8d

Browse files
authored
bpo-36710: Add tstate parameter in import.c (GH-14218)
* Add 'tstate' parameter to many internal import.c functions. * _PyImportZip_Init() now gets 'tstate' parameter rather than 'interp'. * Add 'interp' parameter to _PyState_ClearModules() and rename it to _PyInterpreterState_ClearModules(). * Move private _PyImport_FindBuiltin() to the internal C API; add 'tstate' parameter to it. * Remove private _PyImport_AddModuleObject() from the C API: use public PyImport_AddModuleObject() instead. * Remove private _PyImport_FindExtensionObjectEx() from the C API: use private _PyImport_FindExtensionObject() instead.
1 parent 809ff11 commit 0a28f8d

File tree

8 files changed

+247
-190
lines changed

8 files changed

+247
-190
lines changed

Include/cpython/import.h

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,14 @@ PyMODINIT_FUNC PyInit__imp(void);
1111
PyAPI_FUNC(int) _PyImport_IsInitialized(PyInterpreterState *);
1212

1313
PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(struct _Py_Identifier *name);
14-
PyAPI_FUNC(PyObject *) _PyImport_AddModuleObject(PyObject *name,
15-
PyObject *modules);
1614
PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module);
1715
PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module);
1816

1917
PyAPI_FUNC(void) _PyImport_AcquireLock(void);
2018
PyAPI_FUNC(int) _PyImport_ReleaseLock(void);
2119

22-
PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
23-
const char *name, /* UTF-8 encoded string */
24-
PyObject *modules
25-
);
2620
PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObject(PyObject *, PyObject *);
27-
PyAPI_FUNC(PyObject *) _PyImport_FindExtensionObjectEx(PyObject *, PyObject *,
28-
PyObject *);
21+
2922
PyAPI_FUNC(int) _PyImport_FixupBuiltin(
3023
PyObject *mod,
3124
const char *name, /* UTF-8 encoded string */

Include/cpython/pystate.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ struct _ts {
148148
PyAPI_FUNC(PyInterpreterState *) _PyInterpreterState_Get(void);
149149

150150
PyAPI_FUNC(int) _PyState_AddModule(PyObject*, struct PyModuleDef*);
151-
PyAPI_FUNC(void) _PyState_ClearModules(void);
152151
PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *);
153152

154153
/* Similar to PyThreadState_Get(), but don't issue a fatal error

Include/internal/pycore_import.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
extern "C" {
66
#endif
77

8+
PyAPI_FUNC(PyObject *) _PyImport_FindBuiltin(
9+
PyThreadState *tstate,
10+
const char *name /* UTF-8 encoded string */
11+
);
12+
813
extern void _PyImport_ReInitLock(void);
914

1015
#ifdef __cplusplus

Include/internal/pycore_pylifecycle.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ extern int _PyFloat_Init(void);
5555
extern PyStatus _Py_HashRandomization_Init(const PyConfig *);
5656

5757
extern PyStatus _PyTypes_Init(void);
58-
extern PyStatus _PyImportZip_Init(PyInterpreterState *interp);
58+
extern PyStatus _PyImportZip_Init(PyThreadState *tstate);
5959

6060

6161
/* Various internal finalizers */

Include/internal/pycore_pystate.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,9 @@ PyAPI_FUNC(PyThreadState *) _PyThreadState_Swap(
310310
PyAPI_FUNC(PyStatus) _PyInterpreterState_Enable(_PyRuntimeState *runtime);
311311
PyAPI_FUNC(void) _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime);
312312

313+
/* Used by PyImport_Cleanup() */
314+
extern void _PyInterpreterState_ClearModules(PyInterpreterState *interp);
315+
313316
PyAPI_FUNC(void) _PyGILState_Reinit(_PyRuntimeState *runtime);
314317

315318
#ifdef __cplusplus

0 commit comments

Comments
 (0)