2 AB_list[s] holds the actual base of stack frame s; this
3 is the highest stack pointer of frame s-1.
4 Segments have the following numbers:
7 0, 1, .., curr_frame stackframes
8 Note that AB_list[s] increases for decreasing s.
11 /* $Id: segment.c,v 2.3 1994/06/24 10:49:04 ceriel Exp $ */
20 #define ABLISTSIZE 100L /* initial AB_list size */
22 #define DATA_SEGMENT -2
23 #define HEAP_SEGMENT -1
26 PRIVATE size frame_limit;
27 PRIVATE size curr_frame;
30 /* Allocate space for AB_list & initialize frame variables */
32 frame_limit = ABLISTSIZE;
34 AB_list = (ptr *) Malloc(frame_limit * sizeof (ptr), "AB_list");
35 AB_list[curr_frame] = AB;
41 if (++curr_frame == frame_limit) {
42 frame_limit = allocfrac(frame_limit);
43 AB_list = (ptr *) Realloc((char *) AB_list,
44 frame_limit * sizeof (ptr), "AB_list");
46 AB_list[curr_frame] = p;
50 while (AB_list[curr_frame] < AB) {
63 else if (!in_stack(p)) {
67 for (s = curr_frame; s > 0; s--) {