public void RestoreStackAndFrame(ThreadContextState saved) { Frame = saved.Frame; EvaluationStack = saved.EvaluationStack; SpecialStack = saved.SpecialStack; NestingDepth = saved.NestingDepth; }
public SpecialVariables(Symbol sym, bool constant, object value, SpecialVariables link) { Sym = sym; Constant = constant; Value = value; Link = link; }
public static SpecialVariables Clone(SpecialVariables var) { if (var == null) { return(null); } else { return(new SpecialVariables(var.Sym, var.Constant, var.Value, Clone(var.Link))); } }
public static object GetDynamic(Symbol sym) { // used by compiler generated code for (SpecialVariables entry = CurrentThreadContext.SpecialStack; entry != null; entry = entry.Link) { if (entry.Sym == sym) { return(entry.Value); } } return(sym.CheckedValue); }
public ThreadContext(SpecialVariables specialStack) { SpecialStack = SpecialVariables.Clone(specialStack); }
public static SpecialVariables Clone(SpecialVariables var) { if (var == null) { return null; } else { return new SpecialVariables(var.Sym, var.Constant, var.Value, Clone(var.Link)); } }