Exemple #1
0
 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;
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        int CountCellsReturnAddress(ReturnAddress returnAddress, HashSet<object> visited)
        {
            var sum = 2;
            visited.Add (returnAddress);

            sum += CountCellsImpl (returnAddress.Environment, visited);

            return sum;
        }
Exemple #4
0
 void ApplyReturnAddress(ReturnAddress returnAddress)
 {
     this.programCounter = returnAddress.ProgramCounter;
     this.currentEnvironment = returnAddress.Environment;
 }
Exemple #5
0
 internal static Value Make (ReturnAddress ra)
 {
     Value result = value;
     result.Kind = Kinds.ReturnAddress;
     result.ReturnAddressValue = ra;
     return result;
 }
Exemple #6
0
 void ApplyReturnAddress(ReturnAddress returnAddress)
 {
     this.programCounter = returnAddress.ProgramCounter;
     this.currentEnvironment = returnAddress.Environment;
     this.currentEnvironment.DecreaseUsesLocally ();
 }