• Tim Peters's avatar
    Reworked _bucket_set(): · f3824a9e
    Tim Peters authored
    + Documented the arguments.
    + Used BUCKET_SEARCH.
    + Vastly reduced nesting.
    + Changed the "*changed" argument to get set true whenever PER_CHANGED
      is called, i.e. whenever the bucket mutates.  The purpose of *changed
      wasn't documented, and its only use was in the BTree set routine, which
      is known to have at least one bug.  So it wasn't clear what the purpose
      of *changed was.  What it did do is get set true if and only if the
      key was found in the bucket and its value was replaced, and I couldn't
      imagine a plausible reason for why the BTree set routine could care
      about that alone (all other calls to _bucket_set pass NULL, so there
      were no other clues).
    + Fixed all places where error returns didn't finish the persistence
      dance.
    f3824a9e
BucketTemplate.c 31 KB