From bef985f3f69e6f63b144e936b599517e2d6b0601 Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Sat, 11 Aug 2001 12:37:19 +0000 Subject: cpphash.c (_cpp_destroy_hashtable): Use ht_destroy. * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy. * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix. (struct cpp_pool): New member first. * cppinit.c (append_include_chain): Plug memory leaks. * cpplib.c (cpp_register_pragma, cpp_register_pragma_space): Allocate pragma structures from the (aligned) macro pool to avoid leaking memory. * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first so we don't leak memory. * hashtable.c (ht_destroy): New. * hashtable.h (ht_destroy): New. From-SVN: r44794 --- gcc/hashtable.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'gcc/hashtable.c') diff --git a/gcc/hashtable.c b/gcc/hashtable.c index 82c3a9e..7d0359a 100644 --- a/gcc/hashtable.c +++ b/gcc/hashtable.c @@ -94,6 +94,17 @@ ht_create (order) return table; } +/* Frees all memory associated with a hash table. */ + +void +ht_destroy (table) + hash_table *table; +{ + obstack_free (&table->stack, NULL); + free (table->entries); + free (table); +} + /* Returns the hash entry for the a STR of length LEN. If that string already exists in the table, returns the existing entry, and, if INSERT is CPP_ALLOCED, frees the last obstack object. If the -- cgit v1.1