On 5/22/25 15:19, Peter Krempa wrote: > On Thu, May 22, 2025 at 14:25:13 +0200, Michal Privoznik via Devel wrote: >> From: Michal Privoznik <mpriv...@redhat.com> >> >> While we do not want the nss plugin to link with anything but >> necessary libs (libc and libjson-c) it can benefit from automatic >> memory freeing. Instead of inventing macros with new name for >> them, lets stick with g_autofree and g_steal_pointer() which we >> are used to from the rest of the code. Borrow and simplify >> definitions for these macros then. >> >> Signed-off-by: Michal Privoznik <mpriv...@redhat.com> >> --- >> build-aux/syntax-check.mk | 2 +- >> tools/nss/libvirt_nss.h | 24 ++++++++++++++++++++++++ >> 2 files changed, 25 insertions(+), 1 deletion(-) >>
>> @@ -62,6 +63,29 @@ do { \ >> # define NSS_NAME(s) _nss_libvirt_guest_##s##_r >> #endif >> >> +#if !defined(g_autofree) >> +static inline void >> +generic_free(void *p) >> +{ >> + free(*((void **)p)); >> +} >> +# define g_autofree __attribute__((cleanup(generic_free))) >> +#endif >> + >> +#if !defined(g_steal_pointer) >> +static inline void * >> +g_steal_pointer(void *p) >> +{ >> + void **pp = (void **)p; >> + void *ptr = *pp; >> + >> + *pp = NULL; >> + return ptr; >> +} >> +# define g_steal_pointer(x) (__typeof__(*(x))) g_steal_pointer(x) > > As noted in the next patch it's a bad idea to name this same as > glib macros. This code is supposed to be kept glib free and this makes > it seem as if glib was used here. > I can rename it, sure. But I wanted to keep things consistent. Maybe I can get away with: nss_autofree and nss_steal_pointer (that is replace 'g' with 'nss')? Michal