This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author jacobs99
Recipients
Date 2003-06-10.18:19:21
SpamBayes Score
Marked as misclassified
Message-id
In-reply-to
Content
Logged In: YES 
user_id=459565

Okay, I had a few minutes free.  The problem is that
slots are being deallocated too early -- before tp_dealloc.
I'm attaching a patch that corrects this at the expense of
having to travel up the path of base class tp_dealloc
entries twice.  Here is the new sequence of actions:

1) Find the nearest base with a different tp_dealloc
2) Clear weakrefs
3) Call finalizer
4) Check to see if object was resurrected, if so stop
5) Clear all slots up to nearest base with a different 
    tp_dealloc
6) DECREF dict pointer, if necessary
7) proceed as usual... (call basedealloc, DECREF type, etc.)

Without my patch, step number 5  is done as part of step
1, and bad things happen.
History
Date User Action Args
2007-08-23 14:13:50adminlinkissue751998 messages
2007-08-23 14:13:50admincreate