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

@@ -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);
}