Web lists-archives.com

Re: gobject




Hi;

you should probably try and keep the thread, instead of breaking with
every new email.

On 20 October 2016 at 11:32, Timothy Ward <gtwa001@xxxxxxxxx> wrote:

> The referenced docs are good but only up to a point.

Patches are very welcome; we recently landed a whole review of the
GObject tutorial, and feedback helps improving the documentation.

> Their seems to be two methods used A) one that used a boiler plate
> type declarations code etc and B) one that uses the G_DECLARE type
> declarations. OLD and NEW.

Yes. Ideally, the "new" style, with G_DECLARE_* and G_DEFINE_TYPE,
should be used for all newly written code, as it allows not only
hiding the internals of the type system, but also allows GLib
maintainer to update the best practices for creating types without
requiring vast amounts of code rewrites — just a rebuild.

> The referenced docs do not provided full explanations or examples of
> either.

What kind of full explanation are you looking for, precisely?

> Gobject destruction is not fully described as when object dispose
> and object finalize should be used for an given Gobjects destruction
> and examples of correct use.

That's a good point, and a good example.

In general, dispose() is only meant for releasing references acquired
on other refcounted types that were associated to an instance of your
type; since dispose() can be called multiple times, it allows breaking
reference cycles.

On the other hand, finalize() is going to be called once, and it
should be used to release all memory allocated by an instance of your
type.

There's an overview of how memory management for a GObject type available here:

   https://developer.gnome.org/gobject/stable/gobject-memory.html

Again, feel free to file bugs against the GLib product:

  https://bugzilla.gnome.org/enter_bug.cgi?product=glib

pointing out issues with the current documentation (possible one per issue).

Ciao,
 Emmanuele.

-- 
https://www.bassi.io
[@] ebassi [@gmail.com]
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list