On Tue, Aug 07, 2018 at 06:04:37PM +0200, Erik Skultety wrote: > On Tue, Aug 07, 2018 at 04:14:06PM +0100, Daniel P. Berrangé wrote: > > On Sat, Jul 28, 2018 at 11:31:20PM +0530, Sukrit Bhatnagar wrote: > > > Using the new VIR_DEFINE_AUTOPTR_FUNC macro defined in > > > src/util/viralloc.h, define a new wrapper around an existing > > > cleanup function which will be called when a variable declared > > > with VIR_AUTOPTR macro goes out of scope. Also, drop the redundant > > > viralloc.h include, since that has moved from the source module into > > > the header. > > > > > > When variables of type virNetDevRxFilterPtr and virNetDevMcastEntryPtr > > > are declared using VIR_AUTOPTR, the functions virNetDevRxFilterFree > > > and virNetDevMcastEntryFree, respectively, will be run > > > automatically on them when they go out of scope. > > > > > > Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@xxxxxxxxx> > > > --- > > > src/util/virnetdev.c | 9 ++++++++- > > > src/util/virnetdev.h | 4 ++++ > > > 2 files changed, 12 insertions(+), 1 deletion(-) > > > > > > diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c > > > index 0777eca..9eca786 100644 > > > --- a/src/util/virnetdev.c > > > +++ b/src/util/virnetdev.c > > > @@ -29,7 +29,6 @@ > > > #include "virfile.h" > > > #include "virerror.h" > > > #include "vircommand.h" > > > -#include "viralloc.h" > > > #include "virpci.h" > > > #include "virlog.h" > > > #include "virstring.h" > > > @@ -120,6 +119,14 @@ struct _virNetDevMcastEntry { > > > virMacAddr macaddr; > > > }; > > > > > > +static void > > > +virNetDevMcastEntryFree(virNetDevMcastEntryPtr entry) > > > +{ > > > + VIR_FREE(entry); > > > +} > > > + > > > +VIR_DEFINE_AUTOPTR_FUNC(virNetDevMcastEntry, virNetDevMcastEntryFree) > > > > This causes a compile problem on non-linux platforms due to the function > > being unused: > > > > util/virnetdev.c:128:1: error: unused function 'virNetDevMcastEntryAutoPtrFree' [-Werror,-Wunused-function] > > VIR_DEFINE_AUTOPTR_FUNC(virNetDevMcastEntry, virNetDevMcastEntryFree) > > ^ > > ./util/viralloc.h:612:24: note: expanded from macro 'VIR_DEFINE_AUTOPTR_FUNC' > > static inline void VIR_AUTOPTR_FUNC_NAME(type)(type **_ptr) \ > > ^ > > ./util/viralloc.h:600:38: note: expanded from macro 'VIR_AUTOPTR_FUNC_NAME' > > # define VIR_AUTOPTR_FUNC_NAME(type) type##AutoPtrFree > > ^ > > <scratch space>:21:1: note: expanded from here > > virNetDevMcastEntryAutoPtrFree > > ^ > > 1 error generated. > > Sigh...yeah, there are a few of them, I had some notes in patches that actually > used the definitions, nevertheless should have been compilable on their own > with clang in the first place. I'm already running my local fix in Travis, I'll > be sending patches afterwards. Worth checking a mingw build too, since mingw disables some stuff that is still present on OS-X, so might tickle further code path variations. 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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list