From 7651439487857a666baa5fa5df453b715a85a090 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Mon, 4 Mar 2002 12:06:42 +0000 Subject: [PATCH] * src/output.c (output): Don't free the grammar. * src/reader.c (grammar_free): New. * src/main.c (main): Call it and don't free symtab here. --- ChangeLog | 6 ++++++ src/main.c | 4 +--- src/output.c | 2 -- src/reader.c | 11 ++++++++++- src/reader.h | 6 ++++-- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb69ee05..234698c0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2002-03-04 Akim Demaille + + * src/output.c (output): Don't free the grammar. + * src/reader.c (grammar_free): New. + * src/main.c (main): Call it and don't free symtab here. + 2002-03-04 Akim Demaille * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer diff --git a/src/main.c b/src/main.c index caa451d3..16634de5 100644 --- a/src/main.c +++ b/src/main.c @@ -103,13 +103,11 @@ main (int argc, char *argv[]) /* Output the tables and the parser to ftable. In file output. */ output (); - /* Free the symbol table data structure. */ - free_symtab (); - reduce_free (); free_conflicts (); free_nullable (); free_derives (); + grammar_free (); /* If using alloca.c, flush the alloca'ed memory for the benefit of people running Bison as a library in IDEs. */ diff --git a/src/output.c b/src/output.c index 2556b42a..706ee272 100644 --- a/src/output.c +++ b/src/output.c @@ -1084,7 +1084,6 @@ output (void) output_token_translations (); output_gram (); - XFREE (ritem); if (semantic_parser) output_stos (); output_rule_data (); @@ -1095,7 +1094,6 @@ output (void) /* Process the selected skeleton file. */ output_skeleton (); - free (rules + 1); obstack_free (&muscle_obstack, NULL); obstack_free (&format_obstack, NULL); obstack_free (&action_obstack, NULL); diff --git a/src/reader.c b/src/reader.c index cf3e18f3..10411fa2 100644 --- a/src/reader.c +++ b/src/reader.c @@ -1,5 +1,5 @@ /* Input parser for bison - Copyright 1984, 1986, 1989, 1992, 1998, 2000, 2001 + Copyright (C) 1984, 1986, 1989, 1992, 1998, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -1821,3 +1821,12 @@ reader (void) /* The grammar as a symbol_list is no longer needed. */ LIST_FREE (symbol_list, grammar); } + +void +grammar_free (void) +{ + XFREE (ritem); + free (rules + 1); + /* Free the symbol table data structure. */ + free_symtab (); +} diff --git a/src/reader.h b/src/reader.h index 5c6c9027..32f02e96 100644 --- a/src/reader.h +++ b/src/reader.h @@ -1,5 +1,5 @@ /* Input parser for bison - Copyright 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -27,8 +27,10 @@ function (YYGUARD or YYACTION) which contains a switch statement to decide which guard or action to execute. */ -extern void reader PARAMS ((void)); +void reader PARAMS ((void)); +/* Free the packed grammar. */ +void grammar_free PARAMS ((void)); extern int lineno; -- 2.45.2