From d42a0df8f1b5e1438f8bb317410b995c8e72efa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Thu, 23 Feb 2017 17:05:37 +0100 Subject: vis: unify error path of command registration functions --- vis-cmds.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'vis-cmds.c') diff --git a/vis-cmds.c b/vis-cmds.c index 5e286b1..5d0e230 100644 --- a/vis-cmds.c +++ b/vis-cmds.c @@ -10,6 +10,14 @@ typedef struct { void *data; } CmdUser; +static void cmdfree(CmdUser *cmd) { + if (!cmd) + return; + free((char*)cmd->def.name); + free((char*)cmd->def.help); + free(cmd); +} + bool vis_cmd_register(Vis *vis, const char *name, const char *help, void *data, CmdFunc *func) { if (!name) return false; @@ -34,9 +42,7 @@ bool vis_cmd_register(Vis *vis, const char *name, const char *help, void *data, } return true; err: - free((char*)cmd->def.name); - free((char*)cmd->def.help); - free(cmd); + cmdfree(cmd); return false; } @@ -50,9 +56,7 @@ bool vis_cmd_unregister(Vis *vis, const char *name) { return false; if (!map_delete(vis->usercmds, name)) return false; - free((char*)cmd->def.name); - free((char*)cmd->def.help); - free(cmd); + cmdfree(cmd); return true; } -- cgit v1.2.3