[Python-Dev] RE: test_sort.py failure (original) (raw)
Armin Rigo arigo at tunes.org
Thu Jul 29 14:36:00 CEST 2004
- Previous message: [Python-Dev] RE: test_sort.py failure
- Next message: [Python-Dev] RE: test_sort.py failure
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
The following (just checked in) changes should solve the problem:
drop the unreasonable list invariant that ob_item should never come back to NULL during the lifetime of the object.
listobject.c nevertheless did not conform to the other invariants, either; fixed.
listobject.c now uses list_clear() as the obvious internal way to clear a list, instead of abusing list_ass_slice() for that. It makes it easier to enforce the invariant about ob_item == NULL.
listsort() sets allocated to -1 during sort; any mutation will set it to a value >= 0, so it is a safe way to detect mutation. A negative value for allocated does not cause a problem elsewhere currently. test_sort.py has a new test for this fix.
listsort() leak: if items were added to the list during the sort, AND if these items had a del that puts still more stuff into the list, then this more stuff (and the PyObject** array to hold them) were overridden at the end of listsort() and never released.
Armin
- Previous message: [Python-Dev] RE: test_sort.py failure
- Next message: [Python-Dev] RE: test_sort.py failure
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]