From faebe355a82733f4cb4383ec492ec2155ab7f0a5 Mon Sep 17 00:00:00 2001 From: "Sven M. Hallberg" <pesco@khjk.org> Date: Thu, 23 May 2013 22:53:45 +0200 Subject: [PATCH] fix h_stringmap_replace for the all-values case --- src/cfgrammar.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/cfgrammar.c b/src/cfgrammar.c index 911c0eb5..9abfd10e 100644 --- a/src/cfgrammar.c +++ b/src/cfgrammar.c @@ -271,11 +271,13 @@ void h_stringmap_update(HCFStringMap *m, const HCFStringMap *n) */ void h_stringmap_replace(HCFStringMap *m, void *old, void *new) { - if(!old || m->epsilon_branch == old) - m->epsilon_branch = new; - - if(!old || m->end_branch == old) - m->end_branch = new; + if(!old) { + if(m->epsilon_branch) m->epsilon_branch = new; + if(m->end_branch) m->end_branch = new; + } else { + if(m->epsilon_branch == old) m->epsilon_branch = new; + if(m->end_branch == old) m->end_branch = new; + } // iterate over m->char_branches const HHashTable *ht = m->char_branches; -- GitLab