1994-06-24 11:31:16 +00:00
|
|
|
/* $Id$ */
|
1987-03-09 19:15:41 +00:00
|
|
|
/*
|
|
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
|
|
*/
|
1984-11-26 15:04:22 +00:00
|
|
|
/* I N T E R M E D I A T E C O D E
|
|
|
|
*
|
|
|
|
* C O R E A L L O C A T I O N A N D D E A L L O C A T I O N
|
|
|
|
*/
|
|
|
|
|
2017-11-15 01:35:18 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
|
1984-11-26 15:04:22 +00:00
|
|
|
#ifdef DEBUG
|
2017-11-15 01:35:18 +00:00
|
|
|
void *newcore(size_t);
|
|
|
|
void oldcore(void *, size_t);
|
|
|
|
void coreusage(void);
|
1984-11-26 15:04:22 +00:00
|
|
|
#else
|
2017-11-15 01:35:18 +00:00
|
|
|
void *myalloc(size_t);
|
1984-11-26 15:04:22 +00:00
|
|
|
#define newcore(size) myalloc(size)
|
2017-11-15 01:35:18 +00:00
|
|
|
#define oldcore(p,size) free(p)
|
1984-11-26 15:04:22 +00:00
|
|
|
#endif
|
|
|
|
|
2017-11-15 01:35:18 +00:00
|
|
|
#define newstruct(t) ((struct t *) newcore(sizeof (struct t)))
|
|
|
|
#define oldstruct(t,p) oldcore(p, sizeof (struct t))
|
1984-11-26 15:04:22 +00:00
|
|
|
|
2017-11-15 01:35:18 +00:00
|
|
|
line_p newline(byte optype);
|
|
|
|
arg_p newarg(byte argtyp);
|
|
|
|
short **newmap(short length);
|
|
|
|
cset newbitvect(short nrbytes);
|
|
|
|
cond_p newcondtab(int length);
|
1984-11-26 15:04:22 +00:00
|
|
|
|
|
|
|
|
2017-11-15 01:35:18 +00:00
|
|
|
void oldline(line_p);
|
|
|
|
void oldargs(arg_p);
|
|
|
|
void oldargb(argb_p);
|
|
|
|
void oldobjects(obj_p);
|
|
|
|
void olddblock(dblock_p);
|
|
|
|
void oldmap(short **mp, short length);
|
|
|
|
void oldbitvect(cset s, short nrbytes);
|
|
|
|
void oldcondtab(cond_p);
|
1984-11-26 15:04:22 +00:00
|
|
|
|
2017-11-15 01:35:18 +00:00
|
|
|
short *newtable(short length);
|
|
|
|
void oldtable(short **mp, short length);
|
1984-11-30 10:12:37 +00:00
|
|
|
|
|
|
|
#define newdblock() (dblock_p) newstruct(dblock)
|
|
|
|
#define newobject() (obj_p) newstruct(obj)
|
|
|
|
#define newproc() (proc_p) newstruct(proc)
|
|
|
|
#define newargb() (argb_p) newstruct(argbytes)
|
|
|
|
#define newbblock() (bblock_p) newstruct(bblock)
|
|
|
|
#define newelem() (elem_p) newstruct(elemholder)
|
|
|
|
#define newloop() (loop_p) newstruct(loop)
|
|
|
|
#define newuse() (use_p) newstruct(use)
|
|
|
|
#define newchange() (change_p) newstruct(change)
|
|
|
|
#define newlocal() (local_p) newstruct(local)
|
|
|
|
|
|
|
|
#define oldproc(x) oldstruct(proc,x)
|
|
|
|
#define oldbblock(x) oldstruct(bblock,x)
|
|
|
|
#define oldelem(x) oldstruct(elemholder,x)
|
|
|
|
#define oldloop(x) oldstruct(loop,x)
|
|
|
|
#define olduse(x) oldstruct(use,x)
|
|
|
|
#define oldchange(x) oldstruct(change,x)
|
|
|
|
#define oldlocal(x) oldstruct(local,x)
|