dispose and finalize

2010-01-20 Thread Martin Kalbfuß
Hi,

what's the difference between dispose and finalize? And which members
have to be freed in which of these functions?

Thanks

___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: dispose and finalize

2010-01-20 Thread Holger Berndt
On Wed, 20 Jan 2010 17:56:18 +0100 Martin Kalbfuß wrote:

 what's the difference between dispose and finalize? And which members
 have to be freed in which of these functions?

See http://library.gnome.org/devel/gobject/unstable/gobject-memory.html

The difference in short:

dispose:
- g_object_unref() all GObject member variables
- function must be safe against being called multiple times

finalize:
- free all other (non-GObject) members, close file descriptors etc

Holger
___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: dispose and finalize

2010-01-20 Thread Martin Kalbfuß
OK Thanks,

So if I have a Garray member, I call g_array_unref in finalize, because
it isn't a child of GObject. Correct?

Am Mittwoch, den 20.01.2010, 17:24 +0100 schrieb Holger Berndt:
 On Wed, 20 Jan 2010 17:56:18 +0100 Martin Kalbfuß wrote:
 
  what's the difference between dispose and finalize? And which members
  have to be freed in which of these functions?
 
 See http://library.gnome.org/devel/gobject/unstable/gobject-memory.html
 
 The difference in short:
 
 dispose:
 - g_object_unref() all GObject member variables
 - function must be safe against being called multiple times
 
 finalize:
 - free all other (non-GObject) members, close file descriptors etc
 
 Holger


___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: dispose and finalize

2010-01-20 Thread Holger Berndt
On Wed, 20 Jan 2010 18:20:39 +0100 Martin Kalbfuß wrote:

 So if I have a Garray member, I call g_array_unref in finalize,
 because it isn't a child of GObject. Correct?

Actually, I would decrement the reference count of all reference
counted objects in dispose. Speaking of GObject is probably an
over-simplification. I am not sure if that's strictly required, but it
sounds safer anyways.

Holger
___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list


Re: dispose and finalize

2010-01-20 Thread Artur Galyamov
20.01.10, 17:56, Martin Kalbfuß ma.kalbf...@web.de:

 Hi,
 what's the difference between dispose and finalize? And which members
 have to be freed in which of these functions?
 Thanks

In dispose you should drop all references to other GObjects.
In finalize you free other data (char *, GArray *, etc.)

dispose can be invoked more than one time before finalize.
See also [1], specifically last section.

[1] http://library.gnome.org/devel/gobject/stable/gobject-memory.html

-- 
Artur
___
gtk-list mailing list
gtk-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-list