On Wed, Apr 8, 2020 at 11:37 PM Jonathon Jongsma <jjongsma(a)redhat.com> wrote:
On Fri, 2020-04-03 at 17:15 +0200, Rafael Fonseca wrote:
> @@ -482,14 +495,14 @@ virNetworkFinalize(GObject *obj)
> * @uuid: pointer to the uuid
> *
> * Allocates a new network port object. When the object is no longer
> needed,
> - * virObjectUnref() must be called in order to not leak data.
> + * g_object_unref() must be called in order to not leak data.
> *
> * Returns a pointer to the network port object, or NULL on error.
> */
> virNetworkPortPtr
> virGetNetworkPort(virNetworkPtr net, const unsigned char *uuid)
> {
> - virNetworkPortPtr ret = NULL;
> + g_autoptr(virNetworkPort) ret = NULL;
>
> if (virDataTypesInitialize() < 0)
> return NULL;
> @@ -497,21 +510,19 @@ virGetNetworkPort(virNetworkPtr net, const
> unsigned char *uuid)
> virCheckNetworkGoto(net, error);
> virCheckNonNullArgGoto(uuid, error);
>
> - if (!(ret = virObjectNew(virNetworkPortClass)))
> - goto error;
> + ret = VIR_NETWORK_PORT(g_object_new(VIR_TYPE_NETWORK_PORT,
> NULL));
>
> ret->net = g_object_ref(net);
> memcpy(&(ret->uuid[0]), uuid, VIR_UUID_BUFLEN);
>
> - return ret;
> + return g_steal_pointer(&ret);
>
> error:
> - virObjectUnref(ret);
> return NULL;
> }
As far as I can tell, you removed the only 'goto error' statement from
this function, so the error: label can be removed completely.
Not really because of the virCheckNetworkGoto and
virCheckNonNullArgGoto macros. However, I can change them
's/Goto/Return/' so thanks for pointing that out.
Att.
--
Rafael Fonseca