On Mon, 20 Mar 2017 16:01:39 +0000
Tristan Van Berkom <tristan.vanber...@codethink.co.uk> wrote:

> 
> Use instance private data, this will not need any priv pointer and
> can be done with th G_DEFINE_TYPE_WITH_PRIVATE() macro, and another
> to lookup your private data inside your C file (under the hood, this
> uses negative instance offsets with power nter arithmatic, so public
> and private data are on the same allocated memory slice)
> 

This is still a bit unclear to me, because I found no good reference
what instance private data really is, apart from a patch on the mailing
list. So is it just GObject "magic" that puts private fields into
special memory locations and can therefore retain ABI compatibility?
Because from what I read, I define my structs the same way.

struct _MyType
{
  GtkWidget   parent;
  MyTypePriv *priv;
}
G_DEFINE_TYPE (MyType, my_type, GTK_TYPE_WIDGET)

and

struct _MyType
{
  GtkWidget   parent;
  MyTypePriv *priv;
}
G_DEFINE_TYPE_WITH_PRIVATE (MyType, my_type, GTK_TYPE_WIDGET)

would be first a struct with "normal" private data and second a struct
with instance private data. Or am I completely on the wrong track here?
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to