Issue #6695: Full garbage collection runs now clear the freelist of set objects.
Initial patch by Matthias Troffaes.
diff --git a/Objects/setobject.c b/Objects/setobject.c
index 5375bd1..a05a97b 100644
--- a/Objects/setobject.c
+++ b/Objects/setobject.c
@@ -1068,9 +1068,10 @@
return emptyfrozenset;
}
-void
-PySet_Fini(void)
+int
+PySet_ClearFreeList(void)
{
+ int freelist_size = numfree;
PySetObject *so;
while (numfree) {
@@ -1078,6 +1079,13 @@
so = free_list[numfree];
PyObject_GC_Del(so);
}
+ return freelist_size;
+}
+
+void
+PySet_Fini(void)
+{
+ PySet_ClearFreeList();
Py_CLEAR(dummy);
Py_CLEAR(emptyfrozenset);
}