On 7/23/20 6:12 AM, Daniel P. Berrangé wrote:
Currently QAPI generates a type and function for free'ing it:
typedef struct QCryptoBlockCreateOptions QCryptoBlockCreateOptions;
void qapi_free_QCryptoBlockCreateOptions(QCryptoBlockCreateOptions *obj);
The above code example now becomes
g_autoptr(QCryptoBlockCreateOptions) opts = NULL;
opts = g_new0(QCryptoBlockCreateOptions, 1);
....do stuff with opts...
Note, if the local pointer needs to live beyond the scope holding the
variable, then g_steal_pointer can be used. This is useful to return the
pointer to the caller in the success codepath, while letting it be freed
in all error codepaths.
return g_steal_pointer(&opts);
Yep, the idea makes sense!
Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
include/crypto/block.h | 2 --
scripts/qapi/types.py | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
Missing a counterpart change to docs/devel/qapi-code-gen.txt. And it
might be nice to make this a series with at least one followup patch
using the new capability, or at least so 'make check' coverage. But
otherwise on the right track.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org