On Wed, Oct 10, 2001 at 04:50:12PM +0200, Peter Kese wrote:
> 
> Presumably when label is deleted, its __del__ method should get called.
> But it doesn't. When and how should I use unref(), sink() and other
> methods?
> 
> How and when do PyGtk objects ever get deleted.

Here's the trick.  This python object doesn't get deallocated until
the GObject inside gets deallocated too.  When you remove a python
object from your local scope (with del), and the GObject still has a
refcount, or is floating (I think -- may be this shouldn't be the case
- we had bugs there in old pygtk), the dealloc function will store a
pointer to the instance of the python object _inside_ the GObject.
This keeps the python object alive and is required to keep the one
python object <-> one GObject mapping that PyGTK 2.0 is using.

Now, your case puzzles me.  I think that there may be some problems
with extended types and __del__?  Does __del__ chain properly?  Or do
we need code to do that in our pygobject before we tear down the whole
object?  PEP 252 isn't clear...

Matt
_______________________________________________
pygtk mailing list   [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk

Reply via email to