|
|
1.1 root 1: extern char *alloc_end;
2: extern char *alloc_ptr;
3: extern cfrag *kfree;
4: extern cfrag *ktmp;
5: extern cnode *cfree;
6: extern cnode *ctmp;
7: extern token *tfree;
8: extern token *ttmp;
9: extern xnode *xfree;
10: extern xnode *xtmp;
11:
12: extern char *alloc_fill();
13: extern char *alloc_vector();
14: extern char *chunk();
15: extern char *rechunk();
16: extern cfrag *kreplenish();
17: extern cnode *creplenish();
18: extern token *treplenish();
19: extern void free_chunk();
20: extern xnode *xreplenish();
21:
22: #define alloc(n) ((alloc_ptr += (n)) > alloc_end ? alloc_fill(n) : (alloc_ptr - (n)))
23: #define talloc(x) (x *)alloc(sizeof(x))
24: #define vector(p, n, t) (t *)alloc_vector((char *)p, (n) * sizeof (t))
25:
26: #if !defined(ALLOC_CALLS) && !defined(ALLOC_INTRIN)
27: #define new_cnode() (cfree = (ctmp = cfree == NULL ? creplenish() : cfree)->c_next, ctmp)
28: #define free_cnode(c) (ctmp = cfree, (cfree = c)->c_next = ctmp)
29:
30: #define new_cfrag() (kfree = (ktmp = kfree == NULL ? kreplenish() : kfree)->k_next, ktmp)
31: #define free_cfrag(k) (ktmp = kfree, (kfree = k)->k_next = ktmp)
32:
33: #define new_token() (tfree = (ttmp = tfree == NULL ? treplenish() : tfree)->t_value.t, ttmp)
34: #define free_token(p) (ttmp = tfree, (tfree = p)->t_value.t = ttmp)
35:
36: #define new_xnode() (xfree = (xtmp = xfree == NULL ? xreplenish() : xfree)->x_left, xtmp)
37: #define free_xnode(x) (xtmp = xfree, (xfree = x)->x_left = xtmp)
38: #else
39: extern void free_cnode();
40: extern cnode *new_cnode();
41: extern void free_cfrag();
42: extern cfrag *new_cfrag();
43: extern void free_token();
44: extern token *new_token();
45: extern void free_xnode();
46: extern xnode *new_xnode();
47: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.