• Tim Peters's avatar
    Reserved another gc_refs value for untracked objects. Every live gc · ea405639
    Tim Peters authored
    object should now have a well-defined gc_refs value, with clear transitions
    among gc_refs states.  As a result, none of the visit_XYZ traversal
    callbacks need to check IS_TRACKED() anymore, and those tests were removed.
    (They were already looking for objects with specific gc_refs states, and
    the gc_refs state of an untracked object can no longer match any other
    gc_refs state by accident.)
    Added more asserts.
    I expect that the gc_next == NULL indicator for an untracked object is
    now redundant and can also be removed, but I ran out of time for this.
    ea405639
objimpl.h 12.3 KB