Skip to content

Commit 666ca33

Browse files
Reenable non-debug interned string cleanup through _PyUnicode_ClearInterned
1 parent 471aa75 commit 666ca33

File tree

1 file changed

+0
-12
lines changed

1 file changed

+0
-12
lines changed

Objects/unicodeobject.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14961,17 +14961,6 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp)
1496114961
}
1496214962
assert(PyDict_CheckExact(interned));
1496314963

14964-
/* TODO:
14965-
* Currently, the runtime is not able to guarantee that it can exit without
14966-
* allocations that carry over to a future initialization of Python within
14967-
* the same process. i.e:
14968-
* ./python -X showrefcount -c 'import itertools'
14969-
* [237 refs, 237 blocks]
14970-
*
14971-
* Therefore, this should remain disabled for until there is a strict guarantee
14972-
* that no memory will be left after `Py_Finalize`.
14973-
*/
14974-
#ifdef Py_DEBUG
1497514964
/* For all non-singleton interned strings, restore the two valid references
1497614965
to that instance from within the intern string dictionary and let the
1497714966
normal reference counting process clean up these instances. */
@@ -15028,7 +15017,6 @@ _PyUnicode_ClearInterned(PyInterpreterState *interp)
1502815017
for (Py_ssize_t i=0; i < ids->size; i++) {
1502915018
Py_XINCREF(ids->array[i]);
1503015019
}
15031-
#endif /* Py_DEBUG */
1503215020
clear_interned_dict(interp);
1503315021
}
1503415022

0 commit comments

Comments
 (0)