Hi, it seems the opaque pointer is not faster anymore [1] and, as you said, wastes one pointer of memory, so what about nm_type_name_get_instance_private? [1]
[1] https://www.bassi.io/tag/gobject/ -- Álex Puchades El 29/04/2015 12:00, "Thomas Haller" <thal...@redhat.com> escribió: > Hi, > > > in NM code, we tend to have gobject (duhh) with private data. > We almost always define a macro NM_TYPE_NAME_GET_PRIVATE() as accessor. > > > > I think this long name is quite cumbersome to write. It's a bit redeemed > as we often cache that pointer in a @priv member, but you still have to > add > NMTypeNamePrivate *priv = NM_TYPE_NAME_GET_PRIVATE (self); > to almost all methods. > > > > > What do you think about registering an opaque "priv" pointer in the > public struct instead? > > > Something like > > > /* nm-device.h */ > > struct _NMDevicePrivate; > > typedef struct { > GObject parent; > struct _NMDevicePrivate *priv; > } NMDevice; > > > > /* nm-device.c */ > > typedef struct _NMDevicePrivate NMDevicePrivate; > struct _NMDevicePrivate { > /*members*/ > }; > #define NM_DEVICE_GET_PRIVATE(self) (self->priv) > > > so, we can still continue to use NM_DEVICE_GET_PRIVATE(self), but a IMO > nicer way would be just "self->priv". > > > > > It even has better runtime performance (but consumes one pointer more > memory). > > > > Any opinions? > > > Thomas > > > > _______________________________________________ > networkmanager-list mailing list > networkmanager-list@gnome.org > https://mail.gnome.org/mailman/listinfo/networkmanager-list > >
_______________________________________________ networkmanager-list mailing list networkmanager-list@gnome.org https://mail.gnome.org/mailman/listinfo/networkmanager-list