[PATCH 1/4] vsh-table: Use g_autofree where possible

Kristina Hanicova khanicov at redhat.com
Tue Feb 23 13:04:45 UTC 2021


In: vshTableRowNew(), vshTablePrint(), vshTablePrintToStdout().

Signed-off-by: Kristina Hanicova <khanicov at redhat.com>
---
 tools/vsh-table.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/tools/vsh-table.c b/tools/vsh-table.c
index d09cc9e14e..2e10abfc90 100644
--- a/tools/vsh-table.c
+++ b/tools/vsh-table.c
@@ -98,14 +98,12 @@ vshTableRowNew(const char *arg, va_list ap)
     row = g_new0(vshTableRow, 1);
 
     while (arg) {
-        char *tmp = NULL;
+        g_autofree char *tmp = NULL;
 
         tmp = g_strdup(arg);
 
-        if (VIR_APPEND_ELEMENT(row->cells, row->ncells, tmp) < 0) {
-            VIR_FREE(tmp);
+        if (VIR_APPEND_ELEMENT(row->cells, row->ncells, tmp) < 0)
             goto error;
-        }
 
         arg = va_arg(ap, const char *);
     }
@@ -361,8 +359,8 @@ vshTablePrint(vshTablePtr table, bool header)
 {
     size_t i;
     size_t j;
-    size_t *maxwidths;
-    size_t **widths;
+    g_autofree size_t *maxwidths = NULL;
+    g_autofree size_t **widths = NULL;
     g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
     char *ret = NULL;
 
@@ -395,10 +393,8 @@ vshTablePrint(vshTablePtr table, bool header)
     ret = virBufferContentAndReset(&buf);
 
  cleanup:
-    VIR_FREE(maxwidths);
     for (i = 0; i < table->nrows; i++)
         VIR_FREE(widths[i]);
-    VIR_FREE(widths);
     return ret;
 }
 
@@ -416,15 +412,13 @@ void
 vshTablePrintToStdout(vshTablePtr table, vshControl *ctl)
 {
     bool header;
-    char *out;
+    g_autofree char *out = NULL;
 
     header = ctl ? !ctl->quiet : true;
 
     out = vshTablePrintToString(table, header);
     if (out)
         vshPrint(ctl, "%s", out);
-
-    VIR_FREE(out);
 }
 
 
-- 
2.29.2




More information about the libvir-list mailing list