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:
@@ -19,10 +19,11 @@
|
||||
02111-1307, USA. */
|
||||
|
||||
#include "system.h"
|
||||
#include "alloc.h"
|
||||
#include "xalloc.h"
|
||||
#include "gram.h"
|
||||
#include "closure.h"
|
||||
#include "derives.h"
|
||||
#include "warshall.h"
|
||||
|
||||
short *itemset;
|
||||
short *itemsetend;
|
||||
@@ -122,7 +123,7 @@ set_firsts (void)
|
||||
|
||||
varsetsize = rowsize = WORDSIZE (nvars);
|
||||
|
||||
firsts = NEW2 (nvars * rowsize, unsigned);
|
||||
firsts = XCALLOC (unsigned, nvars * rowsize);
|
||||
|
||||
row = firsts;
|
||||
for (i = ntokens; i < nsyms; i++)
|
||||
@@ -171,7 +172,7 @@ set_fderives (void)
|
||||
int ruleno;
|
||||
int i;
|
||||
|
||||
fderives = NEW2 (nvars * rulesetsize, unsigned) - ntokens * rulesetsize;
|
||||
fderives = XCALLOC (unsigned, nvars * rulesetsize) - ntokens * rulesetsize;
|
||||
|
||||
set_firsts ();
|
||||
|
||||
@@ -208,17 +209,17 @@ set_fderives (void)
|
||||
print_fderives ();
|
||||
#endif
|
||||
|
||||
FREE (firsts);
|
||||
XFREE (firsts);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
new_closure (int n)
|
||||
{
|
||||
itemset = NEW2 (n, short);
|
||||
itemset = XCALLOC (short, n);
|
||||
|
||||
rulesetsize = WORDSIZE (nrules + 1);
|
||||
ruleset = NEW2 (rulesetsize, unsigned);
|
||||
ruleset = XCALLOC (unsigned, rulesetsize);
|
||||
|
||||
set_fderives ();
|
||||
}
|
||||
@@ -310,7 +311,7 @@ closure (short *core, int n)
|
||||
void
|
||||
free_closure (void)
|
||||
{
|
||||
FREE (itemset);
|
||||
FREE (ruleset);
|
||||
FREE (fderives + ntokens * rulesetsize);
|
||||
XFREE (itemset);
|
||||
XFREE (ruleset);
|
||||
XFREE (fderives + ntokens * rulesetsize);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user