[Spice-devel] [PATCH spice-server v2 1/2] Introduce some macros to help declaring new GObject
Frediano Ziglio
fziglio at redhat.com
Thu Sep 7 10:34:43 UTC 2017
>
> On Thu, Sep 07, 2017 at 03:58:21AM -0400, Frediano Ziglio wrote:
> > >
> > > On Wed, Sep 06, 2017 at 03:42:29PM +0100, Frediano Ziglio wrote:
> > > > The macros will implement most of the boilerplate needed
> > > > to declare an object.
> > > > Their usage are similar to GLib G_DECLARE_*_TYPE macros.
> > >
> > > Can we/should we use the GLib provided macros when they are available,
> > > and copy/paste the GLib implementation in a -compat.h header for older
> > > systems. The GLib macros were introduced in GLib 2.43.4
> > >
> > > Christophe
> > >
> >
> > That's fine. But our objects are currently neither final neither interfaces
> > so we can't use any of them.
>
> MainChannel, CursorChannel, ... could be considered final, RedChannel,
> ... could most likely use G_DECLARE_DERIVABLE_TYPE. But the GLib macros might
> not exactly match what we are doing (naming, private data, ..).
>
> Christophe
>
Actually GLib macros are not C99 compatibles which I don't like that
much.
They also rely on 2.38 version for private support while we require
just 2.28 (there's no fields in the structure, all are private and
there's guarantee that private data have a fixed offset).
Another difference is that they require a MODULE while in most cases
we don't use it. Maybe we should have always a module (would be RED
in our case) but looks like lot of sed in the code which won't help
the history much.
If in the future we decide to move to the official macros I think
this is a step forward and helps adding new classes and be more
consistent.
Frediano
More information about the Spice-devel
mailing list