Browse Source

bytecodes are indexed by integers, not Words, to allow bigger code on 32 bit machines

Waldemar Celes 31 years ago
parent
commit
a8220feed2
1 changed files with 8 additions and 10 deletions
  1. 8 10
      lua.stx

+ 8 - 10
lua.stx

@@ -1,6 +1,6 @@
 %{
 
-char *rcs_luastx = "$Id: lua.stx,v 3.14 1994/12/20 21:20:36 roberto Exp celes $";
+char *rcs_luastx = "$Id: lua.stx,v 3.15 1994/12/27 20:04:29 celes Exp celes $";
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -14,14 +14,12 @@ char *rcs_luastx = "$Id: lua.stx,v 3.14 1994/12/20 21:20:36 roberto Exp celes $"
 #include "table.h"
 #include "lua.h"
 
-
 /* to avoid warnings generated by yacc */
 int yyparse (void);
 #define malloc luaI_malloc
 #define realloc luaI_realloc
 #define free luaI_free
 
-
 #ifndef LISTING
 #define LISTING 0
 #endif
@@ -29,14 +27,14 @@ int yyparse (void);
 #ifndef CODE_BLOCK
 #define CODE_BLOCK 256
 #endif
-static Word   maxcode;
-static Word   maxmain;
+static int   maxcode;
+static int   maxmain;
 static Long   maxcurr;  /* to allow maxcurr *= 2 without overflow */
 static Byte  *funcCode = NULL;
 static Byte **initcode;
 static Byte  *basepc;
-static Word   maincode;
-static Word   pc;
+static int   maincode;
+static int   pc;
 
 #define MAXVAR 32
 static Long    varbuffer[MAXVAR];    /* variables in an assignment list;
@@ -57,11 +55,11 @@ static void code_byte (Byte c)
 {
  if (pc>maxcurr-2)  /* 1 byte free to code HALT of main code */
  {
-  if (maxcurr >= MAX_WORD)
+  if (maxcurr >= MAX_INT)
     lua_error("code size overflow");
   maxcurr *= 2;
-  if (maxcurr >= MAX_WORD)
-    maxcurr = MAX_WORD;
+  if (maxcurr >= MAX_INT)
+    maxcurr = MAX_INT;
   basepc = growvector(basepc, maxcurr, Byte);
  }
  basepc[pc++] = c;