• Damien George's avatar
    py: Fix bug where GC finaliser table was not completely zeroed out. · a1d3ee37
    Damien George authored
    This was a nasty bug to track down.  It only had consequences when the
    heap size was just the right size to expose the rounding error in the
    calculation of the finaliser table size.  And, a script had to allocate
    a small (1 or 2 cell) object at the very end of the heap.  And, this
    object must not have a finaliser.  And, the initial state of the heap
    must have been all bits set to 1.  All these conspire on the pyboard,
    but only if your run the script fresh (so unused memory is all 1's),
    and if your script allocates a lot of small objects (eg 2-char strings
    that are not interned).
    a1d3ee37