diff options
-rw-r--r-- | ldo.c | 3 | ||||
-rw-r--r-- | lfunc.c | 3 | ||||
-rw-r--r-- | lgc.c | 4 | ||||
-rw-r--r-- | lobject.h | 20 | ||||
-rw-r--r-- | lstate.h | 9 | ||||
-rw-r--r-- | lstring.c | 4 | ||||
-rw-r--r-- | ltable.c | 3 |
7 files changed, 17 insertions, 29 deletions
@@ -1,5 +1,5 @@ /* -** $Id: ldo.c,v 1.118 2001/01/29 15:35:17 roberto Exp roberto $ +** $Id: ldo.c,v 1.119 2001/01/29 19:34:02 roberto Exp roberto $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -172,7 +172,6 @@ void luaD_call (lua_State *L, StkId func, int nResults) { setclvalue(func, tm); /* tag method is the new function to be called */ } cl = clvalue(func); - ci.v.ttype = LUA_TMARK; ci.func = cl; setivalue(func, &ci); callhook = L->callhook; @@ -1,5 +1,5 @@ /* -** $Id: lfunc.c,v 1.37 2001/01/19 13:20:30 roberto Exp roberto $ +** $Id: lfunc.c,v 1.38 2001/01/29 19:34:02 roberto Exp roberto $ ** Auxiliary functions to manipulate prototypes and closures ** See Copyright Notice in lua.h */ @@ -19,7 +19,6 @@ Closure *luaF_newclosure (lua_State *L, int nelems) { Closure *c = (Closure *)luaM_malloc(L, sizeclosure(nelems)); - c->v.ttype = LUA_TFUNCTION; c->next = G(L)->rootcl; G(L)->rootcl = c; c->mark = c; @@ -1,5 +1,5 @@ /* -** $Id: lgc.c,v 1.82 2001/01/29 17:16:58 roberto Exp roberto $ +** $Id: lgc.c,v 1.83 2001/01/29 19:34:02 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -66,8 +66,6 @@ static void marktable (GCState *st, Hash *h) { static void markobject (GCState *st, TObject *o) { - lua_assert(ttype(o) == LUA_TNUMBER || - ttype(o) == ((TValue *)(o->value.v))->ttype); switch (ttype(o)) { case LUA_TUSERDATA: case LUA_TSTRING: strmark(tsvalue(o)); @@ -1,5 +1,5 @@ /* -** $Id: lobject.h,v 1.90 2001/01/29 17:16:58 roberto Exp roberto $ +** $Id: lobject.h,v 1.91 2001/01/29 19:34:02 roberto Exp roberto $ ** Type definitions for Lua objects ** See Copyright Notice in lua.h */ @@ -41,13 +41,6 @@ #define is_T_MARK(t) (ttype(t) == LUA_TMARK) -/* -** tag at the start of all "boxed" Lua values -*/ -typedef struct TValue { - char ttype; -} TValue; - typedef union { void *v; @@ -116,8 +109,6 @@ typedef struct lua_TObject { #define TSPACK ((int)sizeof(int)) typedef struct TString { - TValue v; - unsigned char marked; union { struct { /* for strings */ luint32 hash; @@ -129,6 +120,7 @@ typedef struct TString { } d; } u; size_t len; + int marked; struct TString *nexthash; /* chain for hash table */ char str[TSPACK]; /* variable length string!! must be the last field! */ } TString; @@ -138,7 +130,6 @@ typedef struct TString { ** Function Prototypes */ typedef struct Proto { - TValue v; lua_Number *knum; /* numbers used by the function */ int sizeknum; /* size of `knum' */ struct TString **kstr; /* strings used by the function */ @@ -173,15 +164,14 @@ typedef struct LocVar { ** Closures */ typedef struct Closure { - TValue v; - char isC; /* 0 for Lua functions, 1 for C functions */ - short nupvalues; + int isC; /* 0 for Lua functions, 1 for C functions */ union { lua_CFunction c; /* C functions */ struct Proto *l; /* Lua functions */ } f; struct Closure *next; struct Closure *mark; /* marked closures (point to itself when not marked) */ + int nupvalues; TObject upvalue[1]; } Closure; @@ -198,7 +188,6 @@ typedef struct Node { typedef struct Hash { - TValue v; Node *node; int htag; int size; @@ -223,7 +212,6 @@ typedef struct Hash { ** informations about a call (for debugging) */ typedef struct CallInfo { - TValue v; struct Closure *func; /* function being called */ const Instruction **pc; /* current pc of called function */ int lastpc; /* last pc traced */ @@ -1,5 +1,5 @@ /* -** $Id: lstate.h,v 1.47 2001/01/25 16:45:36 roberto Exp roberto $ +** $Id: lstate.h,v 1.48 2001/01/26 11:45:51 roberto Exp roberto $ ** Global State ** See Copyright Notice in lua.h */ @@ -32,6 +32,12 @@ extern int islocked; #define LUA_UNLOCK #endif +/* +** macro to allow the inclusion of user information in Lua state +*/ +#ifndef LUA_USERSTATE +#define LUA_USERSTATE +#endif typedef TObject *StkId; /* index to stack elements */ @@ -90,6 +96,7 @@ typedef struct global_State { ** "per thread" state */ struct lua_State { + LUA_USERSTATE StkId top; /* first free slot in the stack */ StkId stack; /* stack base */ StkId stack_last; /* last free slot in the stack */ @@ -1,5 +1,5 @@ /* -** $Id: lstring.c,v 1.53 2001/01/29 19:34:02 roberto Exp roberto $ +** $Id: lstring.c,v 1.54 2001/02/01 13:56:49 roberto Exp roberto $ ** String table (keeps all strings handled by Lua) ** See Copyright Notice in lua.h */ @@ -76,7 +76,6 @@ TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { } /* not found */ ts = (TString *)luaM_malloc(L, sizestring(l)); - ts->v.ttype = LUA_TSTRING; ts->marked = 0; ts->nexthash = NULL; ts->len = l; @@ -92,7 +91,6 @@ TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { TString *luaS_newudata (lua_State *L, size_t s, void *udata) { union L_UTString *uts = (union L_UTString *)luaM_malloc(L, sizeudata(s)); TString *ts = &uts->ts; - ts->v.ttype = LUA_TUSERDATA; ts->marked = 0; ts->nexthash = NULL; ts->len = s; @@ -1,5 +1,5 @@ /* -** $Id: ltable.c,v 1.73 2001/01/29 19:34:02 roberto Exp roberto $ +** $Id: ltable.c,v 1.74 2001/01/30 19:48:37 roberto Exp roberto $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -98,7 +98,6 @@ static void setnodevector (lua_State *L, Hash *t, luint32 size) { Hash *luaH_new (lua_State *L, int size) { Hash *t = luaM_new(L, Hash); - t->v.ttype = LUA_TTABLE; t->htag = TagDefault; t->next = G(L)->roottable; G(L)->roottable = t; |