From 133bef1041073ede2c95bc14aa968a4b30ac86e9 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Tue, 6 Sep 2016 22:21:06 +0200 Subject: [PATCH] fix compilation. eliminate the last order-related memory leak. --- src/kernel/alliance.c | 2 +- src/kernel/command.c | 8 ++++---- src/kernel/command.h | 4 ++-- src/kernel/config.test.c | 1 - 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/kernel/alliance.c b/src/kernel/alliance.c index c9bd26f40..c351ba5ee 100644 --- a/src/kernel/alliance.c +++ b/src/kernel/alliance.c @@ -288,7 +288,7 @@ static void perform_join(void) static syntaxtree * build_syntax(void) { syntaxtree *slang, *stree = stree_create(); for (slang = stree; slang; slang = slang->next) { - void *leaf = 0; + struct tnode *leaf = 0; add_command(&leaf, NULL, LOC(slang->lang, alliance_kwd[ALLIANCE_KICK]), &cmd_kick); add_command(&leaf, NULL, LOC(slang->lang, alliance_kwd[ALLIANCE_LEAVE]), &cmd_leave); add_command(&leaf, NULL, LOC(slang->lang, alliance_kwd[ALLIANCE_TRANSFER]), &cmd_transfer); diff --git a/src/kernel/command.c b/src/kernel/command.c index a667edabc..6f1c18809 100644 --- a/src/kernel/command.c +++ b/src/kernel/command.c @@ -68,7 +68,7 @@ syntaxtree *stree_create(void) } void -add_command(void **keys, void *tnext, +add_command(struct tnode **keys, void *tnext, const char *str, parser fun) { command *cmd = (command *)malloc(sizeof(command)); @@ -78,10 +78,10 @@ const char *str, parser fun) cmd->fun = fun; cmd->nodes = tnext; var.v = cmd; - addtoken((struct tnode **)keys, str, var); + addtoken(keys, str, var); } -static int do_command_i(const void *keys, struct unit *u, struct order *ord) +static int do_command_i(const struct tnode *keys, struct unit *u, struct order *ord) { char token[128]; const char *c; @@ -102,7 +102,7 @@ static int do_command_i(const void *keys, struct unit *u, struct order *ord) return E_TOK_NOMATCH; } -void do_command(const void *keys, struct unit *u, struct order *ord) +void do_command(const struct tnode *keys, struct unit *u, struct order *ord) { init_order(ord); if (do_command_i(keys, u, ord) != E_TOK_SUCCESS) { diff --git a/src/kernel/command.h b/src/kernel/command.h index d66271904..e8d6bbaf2 100644 --- a/src/kernel/command.h +++ b/src/kernel/command.h @@ -28,9 +28,9 @@ extern "C" { } syntaxtree; typedef void(*parser) (const void *nodes, struct unit * u, struct order *); - void add_command(void **troot, void *tnext, + void add_command(struct tnode **troot, void *tnext, const char *str, parser fun); - void do_command(const void *troot, struct unit *u, struct order *); + void do_command(const struct tnode *troot, struct unit *u, struct order *); struct syntaxtree *stree_create(void); void stree_free(struct syntaxtree *); diff --git a/src/kernel/config.test.c b/src/kernel/config.test.c index 2f8fc641d..6bc193bbf 100644 --- a/src/kernel/config.test.c +++ b/src/kernel/config.test.c @@ -186,7 +186,6 @@ static void test_default_order(CuTest *tc) { ord = default_order(loc); CuAssertPtrNotNull(tc, ord); CuAssertIntEquals(tc, K_WORK, getkeyword(ord)); - CuAssertPtrEquals(tc, ord->data, default_order(loc)->data); free_order(ord); test_cleanup(); }