Hello Tim, On Thu, Jul 29, 2004 at 12:11:31AM -0400, Tim Peters wrote: > It's checked in now. Unfortunately it is not true that ob_item can never be set to NULL with normal list operations. list_ass_slice() and list_inplace_repeat() can both do that. The former is not so rare as it is used e.g. for 'del lst[:]'. The invariants of the ob_xxx list members should be clearly specified somewhere and we should stick to them. E.g. it is unclear to me why we allow list_ass_slice() to reset ob_item to NULL and ob_size to 0 without resetting ob_allocated to 0 -- I see why it doesn't crash in a subsequent list_resize(), but it looks messy. Alternatively, the quickest fix for the broken listsort() would have been to keep the empty_ob_item hack but just check that ob_allocated is still zero in addition to ob_size. However the current version is quite clean and can be made bulletproof by ensuring that ob_item is never reset to NULL. A bientot, Armin.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4