From fa71701d46892fe80b1e95279e435533579b3ca7 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 9 Jun 1999 15:19:34 +0000 Subject: When deallocating a list, DECREF the items from the end back to the start. --- Objects/listobject.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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); -- cgit v0.12