summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/listobject.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 05da5dc..0342cdc 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -216,7 +216,12 @@ list_dealloc(op)
{
int i;
if (op->ob_item != NULL) {
- for (i = 0; i < op->ob_size; i++) {
+ /* Do it backwards, for Christian Tismer.
+ There's a simple test case where somehow this reduces
+ thrashing when a *very* large list is created and
+ immediately deleted. */
+ i = op->ob_size;
+ while (--i >= 0) {
Py_XDECREF(op->ob_item[i]);
}
free((ANY *)op->ob_item);