On Thu, May 22, 2025 at 15:22:14 +0200, Michal Prívozník wrote:
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 <mprivozn(a)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 <mprivozn(a)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')?
Well while I don't think it's a good idea to confuse people into
thinking the code is using glib even if we're sure it doesn't (by not
including it thus the compiler moaning in any other function use,
it seems that the consensus from Jirka, Daniel, and you is that it's
preferrable to have consistently named functions.
Please thus disregard what I wrote in this thread.