Comment 3 for bug 181833

Revision history for this message
James Henstridge (jamesh) wrote :

Looking at the code, self->proxy.proxy_object can be NULL if tp_clear() has been called on the object (which doesn't necessarily imply that it has been deallocated.

Gustavo's patch fixes tp_traverse() to handle the case where tp_clear() has been called. That said, much of the code in the _proxy.c and _zope_proxy_proxy.c seem to assume that the proxy_object pointer will be valid. This indicates to me that the object should not be clearing the pointer on tp_clear(). Perhaps the object shouldn't even be implementing tp_clear().