[PATCH 3/4] Use g_autoptr instead of virNetDevBandwidthFree where possible

Ján Tomko jtomko at redhat.com
Thu Feb 25 12:34:27 UTC 2021


On a Tuesday in 2021, Kristina Hanicova wrote:
>In files: netdev_bandwidth_conf: in virNetDevBandwidthParse(),
>bridge_driver: in networkPortSetParameters(), qemu_driver: in
>qemuDomainSetInterfaceParameters(), test_driver: in
>testDomainSetInterfaceParameters(), virnetdevbandwidthtest: in
>testVirNetDevBandwidthSet()

For lists in commit messages, bullet lists are more readable:
* virNetDevBandwidthParse
* networkPortSetParameters

Listing the changed files is not needed with git, usually people
who see the commit message can see the diff list below (or use --stat):

>
>Signed-off-by: Kristina Hanicova <khanicov at redhat.com>
>---
> src/conf/netdev_bandwidth_conf.c |  9 +++------
> src/network/bridge_driver.c      |  6 ++----
> src/qemu/qemu_driver.c           | 11 ++++-------
> src/test/test_driver.c           |  3 +--
> src/util/virnetdevbandwidth.h    |  2 ++
> tests/virnetdevbandwidthtest.c   |  3 +--
> 6 files changed, 13 insertions(+), 21 deletions(-)
>
>diff --git a/src/conf/netdev_bandwidth_conf.c b/src/conf/netdev_bandwidth_conf.c
>index 1ff3785677..81590efe6d 100644
>--- a/src/conf/netdev_bandwidth_conf.c
>+++ b/src/conf/netdev_bandwidth_conf.c
>@@ -111,7 +111,7 @@ virNetDevBandwidthParse(virNetDevBandwidthPtr *bandwidth,
>                         bool allowFloor)
> {
>     int ret = -1;
>-    virNetDevBandwidthPtr def = NULL;
>+    g_autoptr(virNetDevBandwidth) def = NULL;
>     xmlNodePtr cur;
>     xmlNodePtr in = NULL, out = NULL;
>     g_autofree char *class_id_prop = NULL;
>@@ -197,15 +197,12 @@ virNetDevBandwidthParse(virNetDevBandwidthPtr *bandwidth,
>         }
>     }
>
>-    if (!def->in && !def->out)
>-        VIR_FREE(def);
>+    if (def->in || def->out)
>+        *bandwidth = g_steal_pointer(&def);
>
>-    *bandwidth = def;
>-    def = NULL;
>     ret = 0;

This hunk combines:
* removal of VIR_FREE
* inversion of the condition
* the g_steal_pointer change (which is also included in your other
    patch)

For mass conversions across multiple functions or files, doing one type
of change at a time is easier to read (and review).

Alternatively, if a particular function needs more love, consider
sending it as a separate "Refactor virNetDevBandwidthParse" commit.

>
>  cleanup:
>-    virNetDevBandwidthFree(def);
>     return ret;
> }
>
>diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
>index 519a473995..b29c37ef4c 100644
>--- a/src/network/bridge_driver.c
>+++ b/src/network/bridge_driver.c
>@@ -5397,7 +5397,7 @@ networkPortSetParameters(virNetworkPortPtr port,
>     virNetworkObjPtr obj;
>     virNetworkDefPtr def;
>     virNetworkPortDefPtr portdef;
>-    virNetDevBandwidthPtr bandwidth = NULL;
>+    g_autoptr(virNetDevBandwidth) bandwidth = NULL;
>     g_autofree char *dir = NULL;
>     int ret = -1;
>     size_t i;
>@@ -5466,15 +5466,13 @@ networkPortSetParameters(virNetworkPortPtr port,
>         goto cleanup;
>
>     virNetDevBandwidthFree(portdef->bandwidth);

>-    portdef->bandwidth = bandwidth;
>-    bandwidth = NULL;
>+    portdef->bandwidth = g_steal_pointer(&bandwidth);
>

These g_steal_pointer conversions are also not needed to use g_auto and
can be separated.

Jano

>     if (virNetworkPortDefSaveStatus(portdef, dir) < 0)
>         goto cleanup;
>
>     ret = 0;
>  cleanup:
>-    virNetDevBandwidthFree(bandwidth);
>     virNetworkObjEndAPI(&obj);
>     return ret;
> }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210225/9ab2d8d9/attachment-0001.sig>


More information about the libvir-list mailing list