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

Reply via email to