qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] qapi: enable use of g_autoptr with QAPI types


From: Eric Blake
Subject: Re: [PATCH v2] qapi: enable use of g_autoptr with QAPI types
Date: Thu, 23 Jul 2020 10:56:57 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 7/23/20 10:38 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);

The crypto/block.h header needs updating to avoid symbol clash now that
the g_autoptr support is a standard QAPI feature.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---

Reviewed-by: Eric Blake <eblake@redhat.com>

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




reply via email to

[Prev in Thread] Current Thread [Next in Thread]