From 99f02d43f3d8d771b9e1b4784a72937bffff5647 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sun, 18 Nov 1990 17:38:42 +0000 Subject: [PATCH] Free parse tree when deleting parser. --- Parser/parser.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Parser/parser.c b/Parser/parser.c index e0b3530f511..294c534d0ff 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -96,8 +96,6 @@ newparser(g, start) ps->p_grammar = g; ps->p_tree = newnode(start); if (ps->p_tree == NULL) { - if (ps->p_tree != NULL) - DEL(ps->p_tree); /* XXX freeing a node!?! */ DEL(ps); return NULL; } @@ -110,6 +108,9 @@ void delparser(ps) parser_state *ps; { + /* NB If you want to save the parse tree, + you must set p_tree to NULL before calling delparser! */ + freenode(ps->p_tree); DEL(ps); }