1. 12 Jun, 2002 10 commits
  2. 11 Jun, 2002 12 commits
  3. 10 Jun, 2002 7 commits
  4. 09 Jun, 2002 6 commits
    • Tim Peters's avatar
      nextBTreeItems() and nextTreeSetItems(): unlike the other set iteration · ec683139
      Tim Peters authored
      "next" functions, these can return a PER_USE() error *after* decrefing
      the keys and values left over from the last call.  But they don't mark
      the iteration as terminated, so finiSetIteration() will also try to
      decref the leftovers.  The fix is to mark the iteration as terminated
      when these functions fail.
      ec683139
    • Tim Peters's avatar
      Fix for http://collector.zope.org/Zope/419, · f6a898f9
      Tim Peters authored
      "BTreeItems slice contains 1 too many elements"
      This also fixes many related glitches, such as that giving an
      out-of-bound slice index raised IndexError instead of clipping.
      
      BTreeItems_slice():  Emulate Python slicing semantics in all cases.
      
      testBTrees.py:  new testSlicing() tests in MappingBase and NormalSetTests
      to ensure that slicing of .keys()/.items()/.values() works exactly the
      same way as slicing of Python lists, in all one-sided, two-sided and
      whole-structure ([:]) cases, with both negative and positive slice indices,
      and mixtures of + and -, and whether in bounds or out of bounds.
      f6a898f9
    • Tim Peters's avatar
      Trimmed trailing whitespace. · 918da832
      Tim Peters authored
      918da832
    • Tim Peters's avatar
      Trimmed trailing whitespace. · 585f31ad
      Tim Peters authored
      585f31ad
    • Tim Peters's avatar
    • 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
  5. 08 Jun, 2002 5 commits