public ThreadContextState SaveStackAndFrame(Frame frame, Cons form) { var saved = new ThreadContextState(); saved.EvaluationStack = EvaluationStack; saved.SpecialStack = SpecialStack; saved.Frame = Frame; saved.NestingDepth = NestingDepth; ++NestingDepth; if (NestingDepth == 10000) { Debugger.Break(); } if (frame != null) { Frame = frame; Frame.Link = saved.Frame; } if (form != null) { EvaluationStack = Runtime.MakeCons(form, EvaluationStack); } return(saved); }
public void RestoreStackAndFrame(ThreadContextState saved) { Frame = saved.Frame; EvaluationStack = saved.EvaluationStack; SpecialStack = saved.SpecialStack; NestingDepth = saved.NestingDepth; }
public static object RestoreStackAndFrame(ThreadContextState saved) { // used by compiler generated code CurrentThreadContext.RestoreStackAndFrame(saved); return(null); }
public static object RestoreStackAndFrame(ThreadContextState saved) { // used by compiler generated code CurrentThreadContext.RestoreStackAndFrame(saved); return null; }
public void RestoreFrame(ThreadContextState saved) { Frame = saved.Frame; }
public ThreadContextState SaveStackAndFrame(Frame frame = null, Cons form = null) { var saved = new ThreadContextState(); saved.EvaluationStack = EvaluationStack; saved.SpecialStack = SpecialStack; saved.Frame = Frame; saved.NestingDepth = NestingDepth; ++NestingDepth; if (NestingDepth == 10000) { Debugger.Break(); } if (frame != null) { Frame = new Frame(frame, null); Frame.Link = saved.Frame; } if (form != null) { EvaluationStack = Runtime.MakeCons(form, EvaluationStack); } return saved; }