Refactor call stack and its use throughout. CallFrame now does all bytecode processing, and the callframe is reinitialized anytime something might have changed, like a function call.
This commit is contained in:
@@ -2,7 +2,6 @@ package lua;
|
||||
|
||||
import java.util.Hashtable;
|
||||
|
||||
import lua.value.LString;
|
||||
import lua.value.LTable;
|
||||
|
||||
/**
|
||||
@@ -11,27 +10,10 @@ import lua.value.LTable;
|
||||
public class GlobalState {
|
||||
|
||||
// typedef struct global_State {
|
||||
// stringtable strt; /* hash table for strings */
|
||||
Hashtable strt; /* hash table for strings */
|
||||
// lua_Alloc frealloc; /* function to reallocate memory */
|
||||
// void *ud; /* auxiliary data to `frealloc' */
|
||||
// lu_byte currentwhite;
|
||||
// lu_byte gcstate; /* state of garbage collector */
|
||||
// int sweepstrgc; /* position of sweep in `strt' */
|
||||
// GCObject *rootgc; /* list of all collectable objects */
|
||||
// GCObject **sweepgc; /* position of sweep in `rootgc' */
|
||||
// GCObject *gray; /* list of gray objects */
|
||||
// GCObject *grayagain; /* list of objects to be traversed atomically */
|
||||
// GCObject *weak; /* list of weak tables (to be cleared) */
|
||||
// GCObject *tmudata; /* last element of list of userdata to be GC */
|
||||
// Mbuffer buff; /* temporary buffer for string concatentation */
|
||||
StringBuffer buff; /* temporary buffer for string concatentation */
|
||||
// lu_mem GCthreshold;
|
||||
// lu_mem totalbytes; /* number of bytes currently allocated */
|
||||
// lu_mem estimate; /* an estimate of number of bytes actually in use */
|
||||
// lu_mem gcdept; /* how much GC is `behind schedule' */
|
||||
// int gcpause; /* size of pause between successive GCs */
|
||||
// int gcstepmul; /* GC `granularity' */
|
||||
// lua_CFunction panic; /* to be called in unprotected errors */
|
||||
// TValue l_registry;
|
||||
// struct lua_State *mainthread;
|
||||
@@ -45,8 +27,8 @@ public class GlobalState {
|
||||
|
||||
static {
|
||||
_G = new LTable();
|
||||
_G .put( "_G", _G );
|
||||
Builtin.addBuiltins( _G );
|
||||
_G .m_hash.put(new LString("_G"), _G );
|
||||
}
|
||||
|
||||
public static LTable getGlobalsTable() {
|
||||
|
||||
Reference in New Issue
Block a user