Add functions to allocate and free command contexts rather than doing it

all on the stack.
This commit is contained in:
Nicholas Marriott
2013-03-22 15:49:55 +00:00
parent 29613f2f31
commit d1e6ce2672
4 changed files with 51 additions and 42 deletions

View File

@ -97,7 +97,7 @@ cmd_list_exec(struct cmd_list *cmdlist, struct cmd_ctx *ctx)
TAILQ_FOREACH(cmd, &cmdlist->list, qentry) {
if (guards)
ctx->print(ctx, "%%begin");
n = cmd_exec(cmd, ctx);
n = cmd->entry->exec(cmd, ctx);
if (guards)
ctx->print(ctx, "%%end");
@ -146,7 +146,8 @@ cmd_list_free(struct cmd_list *cmdlist)
while (!TAILQ_EMPTY(&cmdlist->list)) {
cmd = TAILQ_FIRST(&cmdlist->list);
TAILQ_REMOVE(&cmdlist->list, cmd, qentry);
cmd_free(cmd);
args_free(cmd->args);
free(cmd);
}
free(cmdlist);
}