}
}
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(vshCmd, vshCommandFree);
+
/**
* vshCommandOpt:
* @cmd: parsed command line to search
* initialize those static variables above. On subsequent
* calls @state is non zero. */
if (!state) {
- vshCmd *partial = NULL;
+ g_autoptr(vshCmd) partial = NULL;
const vshCmdDef *cmd = NULL;
const vshCmdOptDef *opt = NULL;
- char *buf = g_strdup(rl_line_buffer);
+ g_autofree char *buf = g_strdup(rl_line_buffer);
g_strfreev(list);
list = NULL;
vshCommandStringParse(NULL, buf, &partial);
- VIR_FREE(buf);
-
if (partial) {
cmd = partial->def;
partial->skipChecks = true;
(vshCompleterFilter(&completer_list, text) < 0 ||
virStringListMerge(&list, &completer_list) < 0)) {
g_strfreev(completer_list);
- vshCommandFree(partial);
goto cleanup;
}
}
}
- vshCommandFree(partial);
}
if (list) {