On Mon, Sep 30, 2019 at 02:18:17PM +0200, Andrea Bolognani wrote:
On Mon, 2019-09-30 at 13:56 +0200, Pavel Hrdina wrote:
> On Mon, Sep 30, 2019 at 12:45:56PM +0100, Daniel P. Berrangé wrote:
> > On Mon, Sep 30, 2019 at 01:41:52PM +0200, Pavel Hrdina wrote:
> > > On Mon, Sep 30, 2019 at 09:02:36AM +0200, Peter Krempa wrote:
> > > > On Fri, Sep 27, 2019 at 18:17:28 +0100, Daniel Berrange wrote:
> > > > > @@ -698,23 +697,17 @@ virSecretObjSaveConfig(virSecretObjPtr
obj)
> > > > > int
> > > > > virSecretObjSaveData(virSecretObjPtr obj)
> > > > > {
> > > > > - char *base64 = NULL;
> > > > > - int ret = -1;
> > > > > + g_autofree char *base64 = NULL;
> > > >
> > > > I'm not a fan of adding another style here. Either use
VIR_FREE(), or
> > > > convert all VIR_FREE to g_autofree first.
> > > >
> > > > I'm aware it will be unavoidable to use the glib auto pointer
macro for
> > > > complex types but we should at least here where it's
interchangable have
> > > > some kind of consistency.
> > >
> > > Here I agree with Peter, for this series I would use VIR_FREE() where
> > > it's possible and only for glib objects we can use g_autoptr.
> > >
> > > But eventually I would like to switch to g_autofree and friends in order
> > > to eliminate our specific helpers in favor of glib helpers.
> > >
> > > This also brings a question if we should keep our wrappers for glib or
> > > use it directly. For example the string functions that we have.
> >
> > Where any libvirt code just duplicates something that alrady exists, then
> > I think there's no compelling reason to keep it, the best code is code
> > that doesn't exist.
> >
> > I don't want todo too many big bang replacements though, so I think best
> > to deprecate existing libvirt code and phase it out incrementally in many
> > cases.
>
> Agreed, for now let's keep all the wrappers but eventually we can remove
> them to make the code cleaner.
Note that we should be able to use VIR_AUTOPTR() instead of
g_autoptr() even for objects, by simply registering the same
GLib-provided free function with our own macros.
That way we could keep using VIR_AUTO* everywhere and then, when
we're ready, mechanically switch everything to g_auto* in one fell
swoop, without having any point in time where the two styles are
coexisting.
That creates an even bigger conversion later. Such big conversions
cause more pain for backports, than doing an incremental conversion
at appropriate times.
Converting everything to g_autofree right now doesn't give style
consistency as we'd still be matching VIR_ALLOC + g_autofree,
so I don't see a benefit to a big conversion in 1 step.
Incrementally converting VIR_ALLOC + VIR_AUTOFREE at the same
time, makes more sense stylewise, as then within the scope of a
single method we'd be consistent.
Regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|