• Tim Peters's avatar
    BTree_length_or_nonzero(): Sped this. In the nonzero case, · ec72bdca
    Tim Peters authored
    a BTree is empty if and only if its firstbucket pointer is
    NULL, so there's no need to keep checking nonzero inside the
    loop.  Also, the pointers here are all local, so there's no
    need to incref and decref them -- the apparent necessity was
    just an artifact of using the bucket assignment macros.  So
    stopped using those macros, and the need for incref/decref
    operations went away too.
    
    PyVar_AssignB(), ASSIGNB(), ASSIGNBC():  Turned out these
    are no longer used anywhere anymore, so removed them.
    
    PER_UNUSE():  New macro to capture the endlessly repeated
    PER_ALLOW_DEACTIVATION + PER_ACCESSED pair.  As the comment
    says, so sue me <wink>.
    
    Bucket_deleteNextBucket():  Documented & simplified.
    ec72bdca
BucketTemplate.c 33.1 KB