Commit fb62ce38 authored by Guido van Rossum's avatar Guido van Rossum

When deallocating a list, DECREF the items from the end back to the start.

parent 0bada97c
...@@ -216,7 +216,12 @@ list_dealloc(op) ...@@ -216,7 +216,12 @@ list_dealloc(op)
{ {
int i; int i;
if (op->ob_item != NULL) { 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]); Py_XDECREF(op->ob_item[i]);
} }
free((ANY *)op->ob_item); free((ANY *)op->ob_item);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment