I was wondering if this GObject destruction scheme allows destroying an object in a callback for a signal of itself.
Is this possible?
Sorry for the slight of topic!
Merry Christmas,
Ian Liu.
On Wed, 19 Dec 2012 18:55:40 +0100, Nicola Fontana <ntd entidi it> wrote:
> By exposing only dispose() and internalizing finalization in
> libgobject.
How can you do this without one of the following:
(a) Requiring that objects must not have any data, even internal,
that cannot be NULL[*] during the object lifetime. I.e. all data
would require the NULL protection, even those that do not require
it in the current scheme.
(b) Teaching GObject how to free the internal data of your object.
But wait, there is already a method that lets GObject do this: it
is called finalize().
[*] Or, in general, unset in some other manner.
> We are saying the same thing: if a dynamic string is protected
> against NULL throughout your code (no "special" protection
> intended here), freeing and nullifying it in dispose() or freeing
> in finalize() gives the same final result.
Yes, here we are saying the same thing.
Where we differ, is that you seem to propose that all member data should
be like this.
In many cases, internal data can be assumed to just exist in all public
methods *and* during the reference-cycle breaking stage. So no NULL
protection is necessary, they are just plainly freed in finalize().
Regards,
Yeti
_______________________________________________
gtk-list mailing list
gtk-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-list