From 4e3c3918450d004bc00de4ad58eb7b707156f9aa Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Fri, 22 Apr 2011 17:59:52 -0400 Subject: Fix memory leak on #local redeclarations. --- dimension/parse.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'dimension') diff --git a/dimension/parse.c b/dimension/parse.c index 99cda05..74075a7 100644 --- a/dimension/parse.c +++ b/dimension/parse.c @@ -76,7 +76,13 @@ void dmnsn_local_symbol(dmnsn_symbol_table *symtable, dmnsn_dictionary *dict; dmnsn_array_get(symtable, dmnsn_array_size(symtable) - 1, &dict); - dmnsn_dictionary_insert(dict, id, &value); + dmnsn_astnode *node = dmnsn_dictionary_at(dict, id); + if (node) { + dmnsn_delete_astnode(*node); + *node = value; + } else { + dmnsn_dictionary_insert(dict, id, &value); + } } void -- cgit v1.2.3