[libvirt PATCH 5/5] tools: use g_new0 instead of VIR_ALLOC*
Daniel Henrique Barboza
danielhb413 at gmail.com
Thu Sep 24 20:23:54 UTC 2020
On 9/23/20 5:11 PM, Ján Tomko wrote:
> With the exception of vsh*alloc.
>
> Signed-off-by: Ján Tomko <jtomko at redhat.com>
> ---
The 'error' label removal down there in virt-admin-completer.c was
really nice. 2 'for' loops and several VIR_FREE() calls were needed
solely because of that VIR_ALLOC_N().
Reviewed-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> tools/virsh-domain-monitor.c | 11 +++--------
> tools/virsh-domain.c | 26 ++++++++------------------
> tools/virt-admin-completer.c | 12 +-----------
> tools/virt-login-shell-helper.c | 13 ++++---------
> tools/vsh-table.c | 21 +++++++--------------
> tools/vsh.c | 5 +----
> 6 files changed, 24 insertions(+), 64 deletions(-)
>
> diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c
> index 848efc8aa3..c8a7c0f1b7 100644
> --- a/tools/virsh-domain-monitor.c
> +++ b/tools/virsh-domain-monitor.c
> @@ -1234,8 +1234,7 @@ cmdDomBlkError(vshControl *ctl, const vshCmd *cmd)
> ndisks = count;
>
> if (ndisks) {
> - if (VIR_ALLOC_N(disks, ndisks) < 0)
> - goto cleanup;
> + disks = g_new0(virDomainDiskError, ndisks);
>
> if ((count = virDomainGetDiskErrors(dom, disks, ndisks, 0)) == -1)
> goto cleanup;
> @@ -1378,10 +1377,7 @@ cmdDominfo(vshControl *ctl, const vshCmd *cmd)
> vshPrint(ctl, "%-15s %s\n", _("Security DOI:"), secmodel.doi);
>
> /* Security labels are only valid for active domains */
> - if (VIR_ALLOC(seclabel) < 0) {
> - virshDomainFree(dom);
> - return false;
> - }
> + seclabel = g_new0(virSecurityLabel, 1);
>
> if (virDomainGetSecurityLabel(dom, seclabel) == -1) {
> virshDomainFree(dom);
> @@ -2280,8 +2276,7 @@ cmdDomstats(vshControl *ctl, const vshCmd *cmd)
> flags |= VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT;
>
> if (vshCommandOptBool(cmd, "domain")) {
> - if (VIR_ALLOC_N(domlist, 1) < 0)
> - goto cleanup;
> + domlist = g_new0(virDomainPtr, 1);
> ndoms = 1;
>
> while ((opt = vshCommandOptArgv(ctl, cmd, opt))) {
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index 32edfc0398..dfcba04682 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -1762,8 +1762,7 @@ virshBlockJobWaitInit(vshControl *ctl,
> virshBlockJobWaitDataPtr ret;
> virshControlPtr priv = ctl->privData;
>
> - if (VIR_ALLOC(ret) < 0)
> - return NULL;
> + ret = g_new0(virshBlockJobWaitData, 1);
>
> ret->ctl = ctl;
> ret->dom = dom;
> @@ -8177,8 +8176,7 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
> goto cleanup;
> }
>
> - if (VIR_ALLOC_N(params, nparams * MIN(show_count, 128)) < 0)
> - goto cleanup;
> + params = g_new0(virTypedParameter, nparams * MIN(show_count, 128));
>
> while (show_count) {
> int ncpus = MIN(show_count, 128);
> @@ -8215,8 +8213,7 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
> goto cleanup;
> }
>
> - if (VIR_ALLOC_N(params, nparams) < 0)
> - goto cleanup;
> + params = g_new0(virTypedParameter, nparams);
>
> /* passing start_cpu == -1 gives us domain's total status */
> if ((stats_per_cpu = virDomainGetCPUStats(dom, params, nparams,
> @@ -10086,14 +10083,9 @@ cmdLxcEnterNamespace(vshControl *ctl, const vshCmd *cmd)
> goto cleanup;
>
> if (setlabel) {
> - if (VIR_ALLOC(secmodel) < 0) {
> - vshError(ctl, "%s", _("Failed to allocate security model"));
> - goto cleanup;
> - }
> - if (VIR_ALLOC(seclabel) < 0) {
> - vshError(ctl, "%s", _("Failed to allocate security label"));
> - goto cleanup;
> - }
> + secmodel = g_new0(virSecurityModel, 1);
> + seclabel = g_new0(virSecurityLabel, 1);
> +
> if (virNodeGetSecurityModel(priv->conn, secmodel) < 0)
> goto cleanup;
> if (virDomainGetSecurityLabel(dom, seclabel) < 0)
> @@ -13737,8 +13729,7 @@ cmdEvent(vshControl *ctl, const vshCmd *cmd)
> }
>
> if (all) {
> - if (VIR_ALLOC_N(data, VIR_DOMAIN_EVENT_ID_LAST) < 0)
> - goto cleanup;
> + data = g_new0(virshDomEventData, VIR_DOMAIN_EVENT_ID_LAST);
> for (i = 0; i < VIR_DOMAIN_EVENT_ID_LAST; i++) {
> data[i].ctl = ctl;
> data[i].loop = loop;
> @@ -13748,8 +13739,7 @@ cmdEvent(vshControl *ctl, const vshCmd *cmd)
> data[i].id = -1;
> }
> } else {
> - if (VIR_ALLOC_N(data, 1) < 0)
> - goto cleanup;
> + data = g_new0(virshDomEventData, 1);
> data[0].ctl = ctl;
> data[0].loop = vshCommandOptBool(cmd, "loop");
> data[0].count = &count;
> diff --git a/tools/virt-admin-completer.c b/tools/virt-admin-completer.c
> index 7201bb71eb..61004beeb5 100644
> --- a/tools/virt-admin-completer.c
> +++ b/tools/virt-admin-completer.c
> @@ -46,8 +46,7 @@ vshAdmServerCompleter(vshControl *ctl,
> if ((nsrvs = virAdmConnectListServers(priv->conn, &srvs, 0)) < 0)
> return NULL;
>
> - if (VIR_ALLOC_N(ret, nsrvs + 1) < 0)
> - goto error;
> + ret = g_new0(char *, nsrvs + 1);
>
> for (i = 0; i < nsrvs; i++) {
> const char *name = virAdmServerGetName(srvs[i]);
> @@ -59,13 +58,4 @@ vshAdmServerCompleter(vshControl *ctl,
> VIR_FREE(srvs);
>
> return ret;
> -
> - error:
> - for (; i < nsrvs; i++)
> - virAdmServerFree(srvs[i]);
> - VIR_FREE(srvs);
> - for (i = 0; i < nsrvs; i++)
> - VIR_FREE(ret[i]);
> - VIR_FREE(ret);
> - return ret;
> }
> diff --git a/tools/virt-login-shell-helper.c b/tools/virt-login-shell-helper.c
> index cc6836382a..0e7987bf82 100644
> --- a/tools/virt-login-shell-helper.c
> +++ b/tools/virt-login-shell-helper.c
> @@ -99,7 +99,7 @@ static int virLoginShellGetShellArgv(virConfPtr conf,
> return -1;
>
> if (rv == 0) {
> - if (VIR_ALLOC_N(*shargv, 2) < 0)
> + *shargv = g_new0(char *, 2);
> return -1;
> (*shargv)[0] = g_strdup("/bin/sh");
> *shargvlen = 1;
> @@ -302,10 +302,8 @@ main(int argc, char **argv)
>
> if ((nfdlist = virDomainLxcOpenNamespace(dom, &fdlist, 0)) < 0)
> goto cleanup;
> - if (VIR_ALLOC(secmodel) < 0)
> - goto cleanup;
> - if (VIR_ALLOC(seclabel) < 0)
> - goto cleanup;
> + secmodel = g_new0(virSecurityModel, 1);
> + seclabel = g_new0(virSecurityLabel, 1);
> if (virNodeGetSecurityModel(conn, secmodel) < 0)
> goto cleanup;
> if (virDomainGetSecurityLabel(dom, seclabel) < 0)
> @@ -331,10 +329,7 @@ main(int argc, char **argv)
> if (tmp) {
> g_strfreev(shargv);
> shargvlen = 1;
> - if (VIR_ALLOC_N(shargv[0], shargvlen + 1) < 0) {
> - VIR_FREE(tmp);
> - goto cleanup;
> - }
> + shargv = g_new0(char *, shargvlen + 1);
> shargv[0] = tmp;
> shargv[1] = NULL;
> }
> diff --git a/tools/vsh-table.c b/tools/vsh-table.c
> index a727ac17b5..4471368687 100644
> --- a/tools/vsh-table.c
> +++ b/tools/vsh-table.c
> @@ -95,8 +95,7 @@ vshTableRowNew(const char *arg, va_list ap)
> goto error;
> }
>
> - if (VIR_ALLOC(row) < 0)
> - goto error;
> + row = g_new0(vshTableRow, 1);
>
> while (arg) {
> char *tmp = NULL;
> @@ -134,8 +133,7 @@ vshTableNew(const char *arg, ...)
> vshTableRowPtr header = NULL;
> va_list ap;
>
> - if (VIR_ALLOC(table) < 0)
> - goto error;
> + table = g_new0(vshTable, 1);
>
> va_start(ap, arg);
> header = vshTableRowNew(arg, ap);
> @@ -215,8 +213,7 @@ vshTableSafeEncode(const char *s, size_t *width)
>
> memset(&st, 0, sizeof(st));
>
> - if (VIR_ALLOC_N(buf, (sz * HEX_ENCODE_LENGTH) + 1) < 0)
> - return NULL;
> + buf = g_new0(char, (sz * HEX_ENCODE_LENGTH) + 1);
>
> ret = buf;
> *width = 0;
> @@ -369,17 +366,13 @@ vshTablePrint(vshTablePtr table, bool header)
> g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
> char *ret = NULL;
>
> - if (VIR_ALLOC_N(maxwidths, table->rows[0]->ncells))
> - goto cleanup;
> + maxwidths = g_new0(size_t, table->rows[0]->ncells);
>
> - if (VIR_ALLOC_N(widths, table->nrows))
> - goto cleanup;
> + widths = g_new0(size_t *, table->nrows);
>
> /* retrieve widths of columns */
> - for (i = 0; i < table->nrows; i++) {
> - if (VIR_ALLOC_N(widths[i], table->rows[0]->ncells))
> - goto cleanup;
> - }
> + for (i = 0; i < table->nrows; i++)
> + widths[i] = g_new0(size_t, table->rows[0]->ncells);
>
> if (vshTableGetColumnsWidths(table, maxwidths, widths, header) < 0)
> goto cleanup;
> diff --git a/tools/vsh.c b/tools/vsh.c
> index 87c409e4aa..0eddd5349d 100644
> --- a/tools/vsh.c
> +++ b/tools/vsh.c
> @@ -162,10 +162,7 @@ vshStringToArray(const char *str,
> }
>
> /* reserve the NULL element at the end */
> - if (VIR_ALLOC_N(arr, nstr_tokens + 1) < 0) {
> - VIR_FREE(str_copied);
> - return -1;
> - }
> + arr = g_new0(char *, nstr_tokens + 1);
>
> /* tokenize the input string, while treating ,, as a literal comma */
> nstr_tokens = 0;
>
More information about the libvir-list
mailing list