stack is indexed by integers, not Words, to allow bigger stack on 32 bit machines

This commit is contained in:
Roberto Ierusalimschy 1994-12-30 15:45:11 -02:00
parent df3a81ec88
commit 5b8ced84b4
1 changed files with 6 additions and 2 deletions

View File

@ -3,7 +3,7 @@
** TecCGraf - PUC-Rio
*/
char *rcs_opcode="$Id: opcode.c,v 3.29 1994/12/27 20:53:15 celes Exp roberto $";
char *rcs_opcode="$Id: opcode.c,v 3.30 1994/12/28 12:55:47 roberto Exp roberto $";
#include <setjmp.h>
#include <stdio.h>
@ -24,7 +24,7 @@ char *rcs_opcode="$Id: opcode.c,v 3.29 1994/12/27 20:53:15 celes Exp roberto $";
#define STACK_BUFFER (STACKGAP+128)
typedef unsigned int StkId; /* index to stack elements */
typedef int StkId; /* index to stack elements */
static Long maxstack = 0L;
static Object *stack = NULL;
@ -103,8 +103,12 @@ static void lua_checkstack (StkId n)
StkId t;
if (stack == NULL)
lua_initstack();
if (maxstack >= MAX_INT)
lua_error("stack size overflow");
t = top-stack;
maxstack *= 2;
if (maxstack >= MAX_INT)
maxstack = MAX_INT;
stack = growvector(stack, maxstack, Object);
top = stack + t;
}