diff options
-rw-r--r-- | gas/gasp.c | 5 | ||||
-rw-r--r-- | gas/macro.c | 6 |
2 files changed, 9 insertions, 2 deletions
@@ -76,6 +76,11 @@ char *program_version = "1.2"; it. */ extern void as_abort PARAMS ((const char *, int, const char *)); +/* The default obstack chunk size. If we set this to zero, the + obstack code will use whatever will fit in a 4096 byte block. This + is used by the hash table code used by macro.c. */ +int chunksize = 0; + #define MAX_INCLUDES 30 /* Maximum include depth */ #define MAX_REASONABLE 1000 /* Maximum number of expansions */ diff --git a/gas/macro.c b/gas/macro.c index 9d92ff4..2aeb157 100644 --- a/gas/macro.c +++ b/gas/macro.c @@ -1,5 +1,5 @@ /* macro.c - macro support for gas and gasp - Copyright (C) 1994, 95, 96, 97, 1998 Free Software Foundation, Inc. + Copyright (C) 1994, 95, 96, 97, 98, 1999 Free Software Foundation, Inc. Written by Steve and Judy Chamberlain of Cygnus Support, sac@cygnus.com @@ -902,7 +902,9 @@ macro_expand_body (in, out, formals, formal_hash, comment_char, locals) formal_entry *f; f = loclist->next; - hash_delete (formal_hash, sb_terminate (&loclist->name)); + /* Setting the value to NULL effectively deletes the entry. We + avoid calling hash_delete because it doesn't reclaim memory. */ + hash_jam (formal_hash, sb_terminate (&loclist->name), NULL); sb_kill (&loclist->name); sb_kill (&loclist->def); sb_kill (&loclist->actual); |