StackFrame constructor
StackFrame(
- int callIndex,
- dynamic evalIndex
Implementation
StackFrame(int callIndex, evalIndex)
:
locals = Queue<int>(),
evals = Queue<int>()
{
returnAddr = Z.engine.callStack[callIndex];
returnVar = Z.engine.callStack[++callIndex];
var totalLocals = Z.engine.callStack[++callIndex];
for(int i = 0; i < totalLocals; i++){
locals.addFirst(Z.engine.callStack[++callIndex]);
}
totalArgsPassed = Z.engine.callStack[++callIndex];
nextCallStackIndex = callIndex + 1;
if (nextCallStackIndex! >= Z.engine.callStack.length) {
nextCallStackIndex = null;
}
var eStack = Z.engine.stack[evalIndex];
while(eStack != Engine.stackMarker){
evals.addFirst(eStack);
eStack = Z.engine.stack[++evalIndex];
}
if (nextCallStackIndex != null) {
nextEvalStackIndex = evalIndex + 1;
}
}