mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
Fix some memory leaks.
* src/named-ref.c: Add a pointer check (named_ref_free). * src/scan-code.l: New function (variant_table_free). Called in code_scanner_free. * src/symlist.c: Call to named_ref_free (symbol_list_free).
This commit is contained in:
@@ -1,3 +1,11 @@
|
|||||||
|
2009-07-24 Alex Rozenman <rozenmam@gmail.com>
|
||||||
|
|
||||||
|
Fix some memory leaks.
|
||||||
|
* src/named-ref.c: Add a pointer check (named_ref_free).
|
||||||
|
* src/scan-code.l: New function (variant_table_free). Called in
|
||||||
|
code_scanner_free.
|
||||||
|
* src/symlist.c: Call to named_ref_free (symbol_list_free).
|
||||||
|
|
||||||
2009-07-24 Joel E. Denny <jdenny@ces.clemson.edu>
|
2009-07-24 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||||
|
|
||||||
* src/lalr.c (state_lookahead_tokens_count): Correct comment.
|
* src/lalr.c (state_lookahead_tokens_count): Correct comment.
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ named_ref_new (uniqstr id, location loc)
|
|||||||
void
|
void
|
||||||
named_ref_free (named_ref *r)
|
named_ref_free (named_ref *r)
|
||||||
{
|
{
|
||||||
free (r);
|
if (r)
|
||||||
|
free (r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -351,6 +351,15 @@ variant_table_grow ()
|
|||||||
return &variant_table[variant_count - 1];
|
return &variant_table[variant_count - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
variant_table_free ()
|
||||||
|
{
|
||||||
|
if (variant_table)
|
||||||
|
free (variant_table);
|
||||||
|
variant_table = 0;
|
||||||
|
variant_table_size = variant_count = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
find_prefix_end (const char *prefix, char *begin, char *end)
|
find_prefix_end (const char *prefix, char *begin, char *end)
|
||||||
{
|
{
|
||||||
@@ -866,6 +875,8 @@ void
|
|||||||
code_scanner_free (void)
|
code_scanner_free (void)
|
||||||
{
|
{
|
||||||
obstack_free (&obstack_for_string, 0);
|
obstack_free (&obstack_for_string, 0);
|
||||||
|
variant_table_free ();
|
||||||
|
|
||||||
/* Reclaim Flex's buffers. */
|
/* Reclaim Flex's buffers. */
|
||||||
yylex_destroy ();
|
yylex_destroy ();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,7 +146,14 @@ symbol_list_prepend (symbol_list *list, symbol_list *node)
|
|||||||
void
|
void
|
||||||
symbol_list_free (symbol_list *list)
|
symbol_list_free (symbol_list *list)
|
||||||
{
|
{
|
||||||
LIST_FREE (symbol_list, list);
|
symbol_list *node, *next;
|
||||||
|
for (node = list; node; node = next)
|
||||||
|
{
|
||||||
|
next = node->next;
|
||||||
|
if (node->named_ref)
|
||||||
|
named_ref_free (node->named_ref);
|
||||||
|
free (node);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user