diff options
| -rw-r--r-- | Include/pystate.h | 3 | ||||
| -rw-r--r-- | Misc/NEWS | 3 | ||||
| -rw-r--r-- | Python/import.c | 2 | ||||
| -rw-r--r-- | Python/pystate.c | 25 |
4 files changed, 0 insertions, 33 deletions
diff --git a/Include/pystate.h b/Include/pystate.h index e41fe4c0d5..cd1d7765be 100644 --- a/Include/pystate.h +++ b/Include/pystate.h @@ -134,9 +134,6 @@ PyAPI_FUNC(int) PyState_AddModule(PyObject*, struct PyModuleDef*); PyAPI_FUNC(int) PyState_RemoveModule(struct PyModuleDef*); #endif PyAPI_FUNC(PyObject*) PyState_FindModule(struct PyModuleDef*); -#ifndef Py_LIMITED_API -PyAPI_FUNC(void) _PyState_ClearModules(void); -#endif PyAPI_FUNC(PyThreadState *) PyThreadState_New(PyInterpreterState *); PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *); @@ -12,9 +12,6 @@ Core and Builtins - Issue #17899: Fix rare file descriptor leak in os.listdir(). -- Issue #10241: Clear extension module dict copies at interpreter shutdown. - Patch by Neil Schemenauer, minimally modified. - - Issue #9035: ismount now recognises volumes mounted below a drive root on Windows. Original patch by Atsuo Ishimoto. diff --git a/Python/import.c b/Python/import.c index ce09ebedd4..09106555a3 100644 --- a/Python/import.c +++ b/Python/import.c @@ -380,8 +380,6 @@ PyImport_Cleanup(void) builtins = interp->builtins; interp->builtins = PyDict_New(); Py_DECREF(builtins); - /* Clear module dict copies stored in the interpreter state */ - _PyState_ClearModules(); /* Collect references */ _PyGC_CollectNoFail(); /* Dump GC stats before it's too late, since it uses the warnings diff --git a/Python/pystate.c b/Python/pystate.c index 924b6a2909..40606bf1ca 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -320,31 +320,6 @@ PyState_RemoveModule(struct PyModuleDef* def) return PyList_SetItem(state->modules_by_index, index, Py_None); } -/* used by import.c:PyImport_Cleanup */ -void -_PyState_ClearModules(void) -{ - PyInterpreterState *state = PyThreadState_GET()->interp; - if (state->modules_by_index) { - Py_ssize_t i; - for (i = 0; i < PyList_GET_SIZE(state->modules_by_index); i++) { - PyObject *m = PyList_GET_ITEM(state->modules_by_index, i); - if (PyModule_Check(m)) { - /* cleanup the saved copy of module dicts */ - PyModuleDef *md = PyModule_GetDef(m); - if (md) - Py_CLEAR(md->m_base.m_copy); - } - } - /* Setting modules_by_index to NULL could be dangerous, so we - clear the list instead. */ - if (PyList_SetSlice(state->modules_by_index, - 0, PyList_GET_SIZE(state->modules_by_index), - NULL)) - PyErr_WriteUnraisable(state->modules_by_index); - } -} - void PyThreadState_Clear(PyThreadState *tstate) { |
