Skip to content

Commit 0fe1aff

Browse files
Fix _pickle.
1 parent 981dbd2 commit 0fe1aff

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

Modules/_pickle.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1654,9 +1654,7 @@ static PyObject *
16541654
whichmodule(PyObject *global, PyObject *dotted_path)
16551655
{
16561656
PyObject *module_name;
1657-
PyObject *modules_dict;
1658-
PyObject *module;
1659-
Py_ssize_t i;
1657+
PyObject *modules;
16601658
_Py_IDENTIFIER(__module__);
16611659
_Py_IDENTIFIER(modules);
16621660
_Py_IDENTIFIER(__main__);
@@ -1679,15 +1677,16 @@ whichmodule(PyObject *global, PyObject *dotted_path)
16791677
assert(module_name == NULL);
16801678

16811679
/* Fallback on walking sys.modules */
1682-
modules_dict = _PySys_GetObjectId(&PyId_modules);
1683-
if (modules_dict == NULL) {
1680+
modules = _PySys_GetObjectId(&PyId_modules);
1681+
if (modules == NULL) {
16841682
PyErr_SetString(PyExc_RuntimeError, "unable to get sys.modules");
16851683
return NULL;
16861684
}
16871685

1688-
i = 0;
1689-
while (PyDict_Next(modules_dict, &i, &module_name, &module)) {
1686+
PyObject *iterator = PyObject_GetIter(modules);
1687+
while ((module_name = PyIter_Next(iterator))) {
16901688
PyObject *candidate;
1689+
PyObject *module = PyObject_GetItem(modules, module_name);
16911690
if (PyUnicode_Check(module_name) &&
16921691
_PyUnicode_EqualToASCIIString(module_name, "__main__"))
16931692
continue;

0 commit comments

Comments
 (0)