aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/gasp.c5
-rw-r--r--gas/macro.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gas/gasp.c b/gas/gasp.c
index fbb65e3..d8b98b3 100644
--- a/gas/gasp.c
+++ b/gas/gasp.c
@@ -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);