[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/3] require newer glib2 to enable autofree'i
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/3] require newer glib2 to enable autofree'ing of stack variables exiting scope |
Date: |
Wed, 31 Jul 2019 09:08:48 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 7/31/19 9:04 AM, Alex Bennée wrote:
>
> Daniel P. Berrangé <address@hidden> writes:
>
>> Both GCC and CLang support a C extension attribute((cleanup)) which
>> allows you to define a function that is invoked when a stack variable
>> exits scope. This typically used to free the memory allocated to it,
>> though you're not restricted to this. For example it could be used to
>> unlock a mutex.
> <snip>
>>
>> GOOD:
>> g_autofree char *wibble = g_strdup("wibble")
>> ...
>> return g_steal_pointer(wibble);
>>
>> g_steal_pointer is an inline function which simply copies
>> the pointer to a new variable, and sets the original variable
>> to NULL, thus avoiding cleanup.
>
> Surely this is a particular use case where you wouldn't use g_autofree
> to declare the variable as you intending to return it to the outer scope?
Actually, it's still quite useful if you have intermediate returns:
g_autofree char *wibble = NULL;
if (something)
return NULL;
wibble = g_strdup("wibble");
if (something_else)
return NULL;
return g_steal_pointer(wibble);
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH v2 0/3] require newer glib2 to enable autofree'ing of stack variables exiting scope, Daniel P . Berrangé, 2019/07/25
- [Qemu-devel] [PATCH v2 1/3] glib: bump min required glib library version to 2.48, Daniel P . Berrangé, 2019/07/25
- [Qemu-devel] [PATCH v2 2/3] crypto: define cleanup functions for use with g_autoptr, Daniel P . Berrangé, 2019/07/25
- [Qemu-devel] [PATCH v2 3/3] crypto: use auto cleanup for many stack variables, Daniel P . Berrangé, 2019/07/25
- Re: [Qemu-devel] [PATCH v2 0/3] require newer glib2 to enable autofree'ing of stack variables exiting scope, Marc-André Lureau, 2019/07/31
- Re: [Qemu-devel] [PATCH v2 0/3] require newer glib2 to enable autofree'ing of stack variables exiting scope, Alex Bennée, 2019/07/31