diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-13 10:27:58 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-05-13 10:27:58 +0300 |
commit | 4c1056b45580fcb687cac656834f42dd9fba4ae8 (patch) | |
tree | d4bc6aaa3749fd0dbcb86f4d3e86d3b44d036b51 /src/tree.c | |
parent | 967d4d82ef9d10ecd6b32a29f2b3f2743175a268 (diff) | |
download | grecs-4c1056b45580fcb687cac656834f42dd9fba4ae8.tar.gz grecs-4c1056b45580fcb687cac656834f42dd9fba4ae8.tar.bz2 |
Fix memory leaks.
* src/grecs-gram.y (slist production): Free ep->data after appending.
* src/grecs-lex.l (string_list): Remove. All uses updated.
* src/tree.c (grecs_node_free): Free ident.
(grecs_tree_process): Fill config_keywords with zeros.
* src/grecs.h (grecs_getline): New proto.
* src/preproc.c (pp_getline): Rename to grecs_getline,
drop static qualifier. Improve initial allocation.
Diffstat (limited to 'src/tree.c')
-rw-r--r-- | src/tree.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -194,6 +194,7 @@ grecs_node_free(struct grecs_node *node) default: grecs_value_free(node->v.value); } + grecs_free(node->ident); grecs_free(node); } @@ -862,6 +863,7 @@ grecs_tree_process(struct grecs_node *node, struct grecs_keyword *kwd) struct nodeproc_closure clos; struct grecs_keyword config_keywords; + memset(&config_keywords, 0, sizeof(config_keywords)); config_keywords.kwd = kwd; clos.cursect = &config_keywords; clos.sections = grecs_list_create(); |