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:
Akim Demaille
2000-10-02 08:48:32 +00:00
parent 340ef48922
commit d7913476c4
28 changed files with 593 additions and 438 deletions

View File

@@ -26,7 +26,7 @@
#include "system.h"
#include "types.h"
#include "gram.h"
#include "alloc.h"
#include "xalloc.h"
#include "nullable.h"
char *nullable = NULL;
@@ -52,17 +52,17 @@ set_nullable (void)
fprintf (stderr, _("Entering set_nullable"));
#endif
nullable = NEW2 (nvars, char) - ntokens;
nullable = XCALLOC (char, nvars) - ntokens;
squeue = NEW2 (nvars, short);
squeue = XCALLOC (short, nvars);
s1 = s2 = squeue;
rcount = NEW2 (nrules + 1, short);
rsets = NEW2 (nvars, shorts *) - ntokens;
rcount = XCALLOC (short, nrules + 1);
rsets = XCALLOC (shorts *, nvars) - ntokens;
/* This is said to be more elements than we actually use.
Supposedly nitems - nrules is enough.
But why take the risk? */
relts = NEW2 (nitems + nvars + 1, shorts);
relts = XCALLOC (shorts, nitems + nvars + 1);
p = relts;
r = ritem;
@@ -122,15 +122,15 @@ set_nullable (void)
}
}
FREE (squeue);
FREE (rcount);
FREE (rsets + ntokens);
FREE (relts);
XFREE (squeue);
XFREE (rcount);
XFREE (rsets + ntokens);
XFREE (relts);
}
void
free_nullable (void)
{
FREE (nullable + ntokens);
XFREE (nullable + ntokens);
}