1. 09 Jun, 2002 5 commits
    • 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
  2. 08 Jun, 2002 6 commits
  3. 07 Jun, 2002 2 commits
  4. 06 Jun, 2002 2 commits
  5. 05 Jun, 2002 2 commits
  6. 03 Jun, 2002 2 commits
  7. 02 Jun, 2002 2 commits
  8. 01 Jun, 2002 2 commits
  9. 31 May, 2002 15 commits
  10. 30 May, 2002 2 commits