From 289c57aef5d88b0b12bce71beb6e238b8ceb8918 Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Wed, 22 May 2013 21:58:34 +0200 Subject: [PATCH] h_stringmap_update wasn't merging results correctly --- src/cfgrammar.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cfgrammar.c b/src/cfgrammar.c index 896236c2..c965a44e 100644 --- a/src/cfgrammar.c +++ b/src/cfgrammar.c @@ -239,6 +239,13 @@ void h_stringmap_put_char(HCFStringMap *m, uint8_t c, void *v) h_hashtable_put(m->char_branches, (void *)char_key(c), node); } +// helper for h_stringmap_update +void *combine_stringmap(void *v1, void *v2) +{ + h_stringmap_update((HCFStringMap *)v1, (HCFStringMap *)v2); + return v1; +} + void h_stringmap_update(HCFStringMap *m, const HCFStringMap *n) { if(n->epsilon_branch) @@ -247,7 +254,7 @@ void h_stringmap_update(HCFStringMap *m, const HCFStringMap *n) if(n->end_branch) m->end_branch = n->end_branch; - h_hashtable_update(m->char_branches, n->char_branches); + h_hashtable_merge(combine_stringmap, m->char_branches, n->char_branches); } void *h_stringmap_get(const HCFStringMap *m, const uint8_t *str, size_t n, bool end) -- GitLab