int SerializeReturnAddress(ReturnAddress returnAddress, object obj) { var composite = new Composite { Kind = ObjectTypes.ReturnAddress, Elements = new int[2] }; var result = SerializeOneHashed (composite, obj); composite.Elements [0] = Serialize (returnAddress.Environment); composite.Elements [1] = SerializeOne (returnAddress.ProgramCounter); return result; }
ReturnAddress RebuildReturnAddress( object[] objects, int index, Composite composite, Func<int, object> reader) { var result = new ReturnAddress (); objects [index] = result; result.Environment = (VmEnvironment)reader (composite.Elements [0]); result.ProgramCounter = (int)(long)reader (composite.Elements [1]); return result; }
int CountCellsReturnAddress(ReturnAddress returnAddress, HashSet<object> visited) { var sum = 2; visited.Add (returnAddress); sum += CountCellsImpl (returnAddress.Environment, visited); return sum; }
void ApplyReturnAddress(ReturnAddress returnAddress) { this.programCounter = returnAddress.ProgramCounter; this.currentEnvironment = returnAddress.Environment; }
internal static Value Make (ReturnAddress ra) { Value result = value; result.Kind = Kinds.ReturnAddress; result.ReturnAddressValue = ra; return result; }
void ApplyReturnAddress(ReturnAddress returnAddress) { this.programCounter = returnAddress.ProgramCounter; this.currentEnvironment = returnAddress.Environment; this.currentEnvironment.DecreaseUsesLocally (); }