提交 c493af56 编写于 作者: S Sukrit Bhatnagar 提交者: Erik Skultety

util: kmod: use VIR_AUTOPTR for aggregate types

By making use of GNU C's cleanup attribute handled by the
VIR_AUTOPTR macro for declaring aggregate pointer variables,
majority of the calls to *Free functions can be dropped, which
in turn leads to getting rid of most of our cleanup sections.
Signed-off-by: NSukrit Bhatnagar <skrtbhtngr@gmail.com>
Reviewed-by: NErik Skultety <eskultet@redhat.com>
上级 c8682fce
......@@ -28,8 +28,7 @@
static int
doModprobe(const char *opts, const char *module, char **outbuf, char **errbuf)
{
int ret = -1;
virCommandPtr cmd = NULL;
VIR_AUTOPTR(virCommand) cmd = NULL;
cmd = virCommandNew(MODPROBE);
if (opts)
......@@ -42,32 +41,23 @@ doModprobe(const char *opts, const char *module, char **outbuf, char **errbuf)
virCommandSetErrorBuffer(cmd, errbuf);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
return -1;
ret = 0;
cleanup:
virCommandFree(cmd);
return ret;
return 0;
}
static int
doRmmod(const char *module, char **errbuf)
{
int ret = -1;
virCommandPtr cmd = NULL;
VIR_AUTOPTR(virCommand) cmd = NULL;
cmd = virCommandNewArgList(RMMOD, module, NULL);
virCommandSetErrorBuffer(cmd, errbuf);
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
ret = 0;
return -1;
cleanup:
virCommandFree(cmd);
return ret;
return 0;
}
/**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册