mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 16:23:04 +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:
@@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
#include "alloc.h"
|
||||
#include "xalloc.h"
|
||||
#include "types.h"
|
||||
#include "gram.h"
|
||||
#include "derives.h"
|
||||
@@ -37,8 +37,8 @@ short **derives;
|
||||
static void
|
||||
print_derives (void)
|
||||
{
|
||||
register int i;
|
||||
register short *sp;
|
||||
int i;
|
||||
short *sp;
|
||||
|
||||
printf (_("\n\n\nDERIVES\n\n"));
|
||||
|
||||
@@ -60,15 +60,15 @@ print_derives (void)
|
||||
void
|
||||
set_derives (void)
|
||||
{
|
||||
register int i;
|
||||
register int lhs;
|
||||
register shorts *p;
|
||||
register short *q;
|
||||
register shorts **dset;
|
||||
register shorts *delts;
|
||||
int i;
|
||||
int lhs;
|
||||
shorts *p;
|
||||
short *q;
|
||||
shorts **dset;
|
||||
shorts *delts;
|
||||
|
||||
dset = NEW2 (nvars, shorts *) - ntokens;
|
||||
delts = NEW2 (nrules + 1, shorts);
|
||||
dset = XCALLOC (shorts *, nvars) - ntokens;
|
||||
delts = XCALLOC (shorts, nrules + 1);
|
||||
|
||||
p = delts;
|
||||
for (i = nrules; i > 0; i--)
|
||||
@@ -83,8 +83,8 @@ set_derives (void)
|
||||
}
|
||||
}
|
||||
|
||||
derives = NEW2 (nvars, short *) - ntokens;
|
||||
q = NEW2 (nvars + nrules, short);
|
||||
derives = XCALLOC (short *, nvars) - ntokens;
|
||||
q = XCALLOC (short, nvars + nrules);
|
||||
|
||||
for (i = ntokens; i < nsyms; i++)
|
||||
{
|
||||
@@ -102,13 +102,13 @@ set_derives (void)
|
||||
print_derives ();
|
||||
#endif
|
||||
|
||||
FREE (dset + ntokens);
|
||||
FREE (delts);
|
||||
XFREE (dset + ntokens);
|
||||
XFREE (delts);
|
||||
}
|
||||
|
||||
void
|
||||
free_derives (void)
|
||||
{
|
||||
FREE (derives[ntokens]);
|
||||
FREE (derives + ntokens);
|
||||
XFREE (derives[ntokens]);
|
||||
XFREE (derives + ntokens);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user