aboutsummaryrefslogtreecommitdiff
path: root/src/tree.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-05-13 10:27:58 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-05-13 10:27:58 +0300
commit4c1056b45580fcb687cac656834f42dd9fba4ae8 (patch)
treed4bc6aaa3749fd0dbcb86f4d3e86d3b44d036b51 /src/tree.c
parent967d4d82ef9d10ecd6b32a29f2b3f2743175a268 (diff)
downloadgrecs-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.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/tree.c b/src/tree.c
index 770f660..3419de7 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -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();

Return to:

Send suggestions and report system problems to the System administrator.