private void InitStack() { Stack = new StkId[LuaDef.BASIC_STACK_SIZE]; StackSize = LuaDef.BASIC_STACK_SIZE; StackLast = LuaDef.BASIC_STACK_SIZE - LuaDef.EXTRA_STACK; for (int i = 0; i < LuaDef.BASIC_STACK_SIZE; ++i) { StkId newItem = new StkId(); Stack[i] = newItem; newItem.SetList(Stack); newItem.SetIndex(i); newItem.V.SetNilValue(); } Top = Stack[0]; BaseCI = new CallInfo[LuaDef.BASE_CI_SIZE]; for (int i = 0; i < LuaDef.BASE_CI_SIZE; ++i) { CallInfo newCI = new CallInfo(); BaseCI[i] = newCI; newCI.List = BaseCI; newCI.Index = i; } CI = BaseCI[0]; CI.FuncIndex = Top.Index; StkId.inc(ref Top).V.SetNilValue(); // `function' entry for this `ci' CI.TopIndex = Top.Index + LuaDef.LUA_MINSTACK; }
public LuaCsClosureValue(CSharpFunctionDelegate f, int numUpvalues) { F = f; Upvals = new StkId[numUpvalues]; for (int i = 0; i < numUpvalues; ++i) { StkId newItem = new StkId(); Upvals[i] = newItem; newItem.SetList(Upvals); newItem.SetIndex(i); } }
public LuaCsClosureValue( CSharpFunctionDelegate f, int numUpvalues ) { F = f; Upvals = new StkId[numUpvalues]; for(int i=0; i<numUpvalues; ++i) { var newItem = new StkId(); Upvals[i] = newItem; newItem.SetList(Upvals); newItem.SetIndex(i); } }