mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 06:43:03 +00:00
Use the more standard files xalloc.h' and xmalloc.c' instead of
Bison's `allocate.c' and `alloc.h'. This patch was surprisingly difficult and introduced a lot of core dump. It turns out that Bison used an implementation of `xmalloc' based on `calloc', and at various places it does depend upon the initialization to 0. I have not tried to isolate the pertinent places, and all the former calls to Bison's `xmalloc' are now using `XCALLOC'. Someday, someone should address this issue. * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove. * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New files. Adjust dependencies. * src/warshall.h: New file. Propagate.
This commit is contained in:
14
src/symtab.c
14
src/symtab.c
@@ -20,7 +20,7 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
#include "system.h"
|
||||
#include "alloc.h"
|
||||
#include "xalloc.h"
|
||||
#include "symtab.h"
|
||||
#include "gram.h"
|
||||
|
||||
@@ -56,7 +56,7 @@ copys (const char *s)
|
||||
for (cp = s; *cp; cp++)
|
||||
i++;
|
||||
|
||||
result = xmalloc((unsigned int)i);
|
||||
result = XMALLOC(char, i);
|
||||
strcpy(result, s);
|
||||
return result;
|
||||
}
|
||||
@@ -67,7 +67,7 @@ tabinit (void)
|
||||
{
|
||||
/* register int i; JF unused */
|
||||
|
||||
symtab = NEW2(TABSIZE, bucket *);
|
||||
symtab = XCALLOC (bucket *, TABSIZE);
|
||||
|
||||
firstsymbol = NULL;
|
||||
lastsymbol = NULL;
|
||||
@@ -97,7 +97,7 @@ getsym (const char *key)
|
||||
{
|
||||
nsyms++;
|
||||
|
||||
bp = NEW(bucket);
|
||||
bp = XCALLOC (bucket, 1);
|
||||
bp->link = symtab[hashval];
|
||||
bp->next = NULL;
|
||||
bp->tag = copys(key);
|
||||
@@ -135,11 +135,11 @@ free_symtab (void)
|
||||
bptmp = bp->link;
|
||||
#if 0 /* This causes crashes because one string can appear more than once. */
|
||||
if (bp->type_name)
|
||||
FREE(bp->type_name);
|
||||
XFREE(bp->type_name);
|
||||
#endif
|
||||
FREE(bp);
|
||||
XFREE(bp);
|
||||
bp = bptmp;
|
||||
}
|
||||
}
|
||||
FREE(symtab);
|
||||
XFREE(symtab);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user