1. 02 Eki, 2004 6 kayıt (commit)
    • Just van Rossum's avatar
      16c3e089
    • Armin Rigo's avatar
      Upon insertion, if memory runs out, the deque was left in a corrupted state. · 974d757a
      Armin Rigo yazdı
      deque_item(): a performance bug: the linked list of blocks was followed
      from the left in most cases, because the test (i < (deque->len >> 1)) was
      after "i %= BLOCKLEN".
      
      deque_clear(): replaced a call to deque_len() with deque->len; not sure what
      this call was here for, nor if all compilers under the sun would inline it.
      
      deque_traverse(): I belive that it could be called by the GC when the deque
      has leftblock==rightblock==NULL, because it is tracked before the first block
      is allocated (though closely before).  Still, a C extension module subclassing
      deque could provide its own tp_alloc that could trigger a GC collection after
      the PyObject_GC_Track()...
      
      deque_richcompare(): rewrote to cleanly check for end-of-iterations instead of
      relying on deque.__iter__().next() to succeed exactly len(deque) times -- an
      assumption which can break if deques are subclassed.  Added a test.
      
      I wonder if the length should be explicitely bounded to INT_MAX, with
      OverflowErrors, as in listobject.c.  On 64-bit machines, adding more than
      INT_MAX in the deque will result in trouble.  (Note to anyone/me fixing
      this: carefully check for overflows if len is close to INT_MAX in the
      following functions: deque_rotate(), deque_item(), deque_ass_item())
      974d757a
    • Raymond Hettinger's avatar
    • Raymond Hettinger's avatar
      880430e2
    • Just van Rossum's avatar
      Which reminds me, I've had a much improved plistlib.py lying around for · 4c3d054d
      Just van Rossum yazdı
      ages. The main improvements are:
      - a much more convenient API: readPlist() and writePlist()
      - support non-dict top-level objects
      4c3d054d
    • Raymond Hettinger's avatar
      * Bulletproof the method for detecting mutations during iteration. · d1b3d88b
      Raymond Hettinger yazdı
        The previous approach was too easily fooled (a rotate() sufficed).
      
      * Use it->counter to determine when iteration is complete.  The
        previous approach was too complex.
      
      * Strengthen an assertion and add a comment here or there.
      d1b3d88b
  2. 01 Eki, 2004 10 kayıt (commit)
  3. 30 Eyl, 2004 6 kayıt (commit)
  4. 29 Eyl, 2004 5 kayıt (commit)
  5. 28 Eyl, 2004 13 kayıt (commit)