version 1.2, 2003/09/19 19:00:36 |
version 1.3, 2003/09/28 19:29:33 |
|
|
static void |
static void |
stack_grow(struct stack *stack) |
stack_grow(struct stack *stack) |
{ |
{ |
int old_size, i; |
int new_size, i; |
|
|
if (++stack->sp == stack->size) { |
if (++stack->sp == stack->size) { |
old_size = stack->size; |
new_size = stack->size * 2 + 1; |
stack->size *= 2; |
|
stack->stack = brealloc(stack->stack, |
stack->stack = brealloc(stack->stack, |
++stack->size * sizeof(*stack->stack)); |
new_size * sizeof(*stack->stack)); |
for (i = old_size; i < stack->size; i++) |
for (i = stack->size; i < new_size; i++) |
stack->stack[i].array = NULL; |
stack->stack[i].array = NULL; |
|
stack->size = new_size; |
} |
} |
} |
} |
|
|