1. 05 Nis, 2003 4 kayıt (commit)
    • Tim Peters's avatar
      move_finalizers(): Rewrote. It's not necessary for this routine · f6ae7a43
      Tim Peters yazdı
      to special-case classic classes, or to worry about refcounts;
      has_finalizer() deleted the current object iff the first entry in
      the unreachable list has changed.  I don't believe it was correct
      to check for ob_refcnt == 1, either:  the dealloc routine would get
      called by Py_DECREF then, but there's nothing to stop the dealloc
      routine from ressurecting the object, and then gc would remain at
      the head of the unreachable list despite that its refcount temporarily
      fell to 0 (and that would lead to an infinite loop in move_finalizers()).
      
      I'm still worried about has_finalizer() resurrecting other objects
      in the unreachable list:  what's to stop them from getting collected?
      f6ae7a43
    • Tim Peters's avatar
      test_boom: More comments. Also check that len(gc.garbage) doesn't · 2f74fddf
      Tim Peters yazdı
      change (it would be another kind of bug if the trash cycle weren't
      reclaimed).
      2f74fddf
    • Tim Peters's avatar
      New comments. Rewrote has_finalizer() as a sequence of ifs instead of · 86b993b6
      Tim Peters yazdı
      squashed-together conditional operators; makes it much easier to step
      thru in the debugger, and to set a breakpoint on the only dangerous
      path.
      86b993b6
    • Tim Peters's avatar
      Fixed new seemingly random segfaults, by moving the initialization of · 93ad66de
      Tim Peters yazdı
      delstr from initgc() into collect().  initgc() isn't called unless the
      user explicitly imports gc, so can be used only for initialization of
      user-visible module features; delstr needs to be initialized for proper
      internal operation, whether or not gc is explicitly imported.
      
      Bugfix candidate?  I don't know whether the new bug was backported to
      2.2 already.
      93ad66de
  2. 04 Nis, 2003 4 kayıt (commit)
  3. 03 Nis, 2003 3 kayıt (commit)
  4. 02 Nis, 2003 3 kayıt (commit)
  5. 01 Nis, 2003 7 kayıt (commit)
  6. 31 Mar, 2003 12 kayıt (commit)
  7. 30 Mar, 2003 7 kayıt (commit)