|
|
@@ -0,0 +1,1336 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Reflection;
|
|
|
+using System.Runtime.InteropServices;
|
|
|
+
|
|
|
+using ILRuntime.CLR.TypeSystem;
|
|
|
+using ILRuntime.CLR.Method;
|
|
|
+using ILRuntime.Runtime.Enviorment;
|
|
|
+using ILRuntime.Runtime.Intepreter;
|
|
|
+using ILRuntime.Runtime.Stack;
|
|
|
+using ILRuntime.Reflection;
|
|
|
+using ILRuntime.CLR.Utils;
|
|
|
+
|
|
|
+namespace ILRuntime.Runtime.Generated
|
|
|
+{
|
|
|
+ unsafe class ET_ETAsyncTaskMethodBuilder_Binding
|
|
|
+ {
|
|
|
+ public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
|
|
|
+ {
|
|
|
+ BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
|
|
|
+ MethodBase method;
|
|
|
+ Type[] args;
|
|
|
+ Type type = typeof(ET.ETAsyncTaskMethodBuilder);
|
|
|
+ args = new Type[]{};
|
|
|
+ method = type.GetMethod("Create", flag, null, args, null);
|
|
|
+ app.RegisterCLRMethodRedirection(method, Create_0);
|
|
|
+ Dictionary<string, List<MethodInfo>> genericMethods = new Dictionary<string, List<MethodInfo>>();
|
|
|
+ List<MethodInfo> lst = null;
|
|
|
+ foreach(var m in type.GetMethods())
|
|
|
+ {
|
|
|
+ if(m.IsGenericMethodDefinition)
|
|
|
+ {
|
|
|
+ if (!genericMethods.TryGetValue(m.Name, out lst))
|
|
|
+ {
|
|
|
+ lst = new List<MethodInfo>();
|
|
|
+ genericMethods[m.Name] = lst;
|
|
|
+ }
|
|
|
+ lst.Add(m);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("Start", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, Start_1);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{};
|
|
|
+ method = type.GetMethod("get_Task", flag, null, args, null);
|
|
|
+ app.RegisterCLRMethodRedirection(method, get_Task_2);
|
|
|
+ args = new Type[]{typeof(ET.ETTask), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.ETTask).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_3);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(System.Exception)};
|
|
|
+ method = type.GetMethod("SetException", flag, null, args, null);
|
|
|
+ app.RegisterCLRMethodRedirection(method, SetException_4);
|
|
|
+ args = new Type[]{};
|
|
|
+ method = type.GetMethod("SetResult", flag, null, args, null);
|
|
|
+ app.RegisterCLRMethodRedirection(method, SetResult_5);
|
|
|
+ args = new Type[]{typeof(System.Runtime.CompilerServices.IAsyncStateMachine)};
|
|
|
+ method = type.GetMethod("SetStateMachine", flag, null, args, null);
|
|
|
+ app.RegisterCLRMethodRedirection(method, SetStateMachine_6);
|
|
|
+ args = new Type[]{typeof(ET.ETTask<ET.ISupportInitializeAdapter.Adapter>), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.ETTask<ET.ISupportInitializeAdapter.Adapter>).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_7);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(ET.ETTask<System.Boolean>), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.ETTask<System.Boolean>).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_8);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(ET.ETTask<UnityEngine.Object[]>), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.ETTask<UnityEngine.Object[]>).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_9);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance>), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance>).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_10);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(System.Runtime.CompilerServices.TaskAwaiter), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(System.Runtime.CompilerServices.TaskAwaiter).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_11);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ args = new Type[]{typeof(ET.ETTaskCompleted), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)};
|
|
|
+ if (genericMethods.TryGetValue("AwaitUnsafeOnCompleted", out lst))
|
|
|
+ {
|
|
|
+ foreach(var m in lst)
|
|
|
+ {
|
|
|
+ if(m.MatchGenericParameters(args, typeof(void), typeof(ET.ETTaskCompleted).MakeByRefType(), typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).MakeByRefType()))
|
|
|
+ {
|
|
|
+ method = m.MakeGenericMethod(args);
|
|
|
+ app.RegisterCLRMethodRedirection(method, AwaitUnsafeOnCompleted_12);
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ app.RegisterCLRCreateDefaultInstance(type, () => new ET.ETAsyncTaskMethodBuilder());
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ static void WriteBackInstance(ILRuntime.Runtime.Enviorment.AppDomain __domain, StackObject* ptr_of_this_method, IList<object> __mStack, ref ET.ETAsyncTaskMethodBuilder instance_of_this_method)
|
|
|
+ {
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.Object:
|
|
|
+ {
|
|
|
+ __mStack[ptr_of_this_method->Value] = instance_of_this_method;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = instance_of_this_method;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var t = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ t.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, instance_of_this_method);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var t = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(t is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)t).StaticInstance[ptr_of_this_method->ValueLow] = instance_of_this_method;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)t).SetStaticFieldValue(ptr_of_this_method->ValueLow, instance_of_this_method);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETAsyncTaskMethodBuilder[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = instance_of_this_method;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* Create_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 0);
|
|
|
+
|
|
|
+
|
|
|
+ var result_of_this_method = ET.ETAsyncTaskMethodBuilder.Create();
|
|
|
+
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* Start_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 2);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ object instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ ((ET.ETAsyncTaskMethodBuilder)instance_of_this_method).Start<ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* get_Task_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 1);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ var result_of_this_method = instance_of_this_method.Task;
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ET.ETTask @awaiter = (ET.ETTask)typeof(ET.ETTask).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<ET.ETTask, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETTask[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* SetException_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 2);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ System.Exception @exception = (System.Exception)typeof(System.Exception).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.SetException(@exception);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* SetResult_5(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 1);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.SetResult();
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* SetStateMachine_6(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 2);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ System.Runtime.CompilerServices.IAsyncStateMachine @stateMachine = (System.Runtime.CompilerServices.IAsyncStateMachine)typeof(System.Runtime.CompilerServices.IAsyncStateMachine).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.SetStateMachine(@stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_7(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ET.ETTask<ET.ISupportInitializeAdapter.Adapter> @awaiter = (ET.ETTask<ET.ISupportInitializeAdapter.Adapter>)typeof(ET.ETTask<ET.ISupportInitializeAdapter.Adapter>).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<ET.ETTask<ET.ISupportInitializeAdapter.Adapter>, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETTask<ET.ISupportInitializeAdapter.Adapter>[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_8(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ET.ETTask<System.Boolean> @awaiter = (ET.ETTask<System.Boolean>)typeof(ET.ETTask<System.Boolean>).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<ET.ETTask<System.Boolean>, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETTask<System.Boolean>[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_9(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ET.ETTask<UnityEngine.Object[]> @awaiter = (ET.ETTask<UnityEngine.Object[]>)typeof(ET.ETTask<UnityEngine.Object[]>).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<ET.ETTask<UnityEngine.Object[]>, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETTask<UnityEngine.Object[]>[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_10(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance> @awaiter = (ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance>)typeof(ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance>).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance>, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETTask<ILRuntime.Runtime.Intepreter.ILTypeInstance>[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_11(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ System.Runtime.CompilerServices.TaskAwaiter @awaiter = (System.Runtime.CompilerServices.TaskAwaiter)typeof(System.Runtime.CompilerServices.TaskAwaiter).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<System.Runtime.CompilerServices.TaskAwaiter, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as System.Runtime.CompilerServices.TaskAwaiter[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+ static StackObject* AwaitUnsafeOnCompleted_12(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
|
|
|
+ {
|
|
|
+ ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
|
|
|
+ StackObject* ptr_of_this_method;
|
|
|
+ StackObject* __ret = ILIntepreter.Minus(__esp, 3);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor @stateMachine = (ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor)typeof(ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ ET.ETTaskCompleted @awaiter = (ET.ETTaskCompleted)typeof(ET.ETTaskCompleted).CheckCLRTypes(__intp.RetriveObject(ptr_of_this_method, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
|
|
|
+ ET.ETAsyncTaskMethodBuilder instance_of_this_method = (ET.ETAsyncTaskMethodBuilder)typeof(ET.ETAsyncTaskMethodBuilder).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
|
|
|
+
|
|
|
+ instance_of_this_method.AwaitUnsafeOnCompleted<ET.ETTaskCompleted, ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor>(ref @awaiter, ref @stateMachine);
|
|
|
+
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @stateMachine;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @stateMachine);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.IAsyncStateMachineClassInheritanceAdaptor.IAsyncStateMachineAdaptor[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @stateMachine;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
|
|
|
+ switch(ptr_of_this_method->ObjectType)
|
|
|
+ {
|
|
|
+ case ObjectTypes.StackObjectReference:
|
|
|
+ {
|
|
|
+ var ___dst = ILIntepreter.ResolveReference(ptr_of_this_method);
|
|
|
+ object ___obj = @awaiter;
|
|
|
+ if (___dst->ObjectType >= ObjectTypes.Object)
|
|
|
+ {
|
|
|
+ if (___obj is CrossBindingAdaptorType)
|
|
|
+ ___obj = ((CrossBindingAdaptorType)___obj).ILInstance;
|
|
|
+ __mStack[___dst->Value] = ___obj;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ILIntepreter.UnboxObject(___dst, ___obj, __mStack, __domain);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.FieldReference:
|
|
|
+ {
|
|
|
+ var ___obj = __mStack[ptr_of_this_method->Value];
|
|
|
+ if(___obj is ILTypeInstance)
|
|
|
+ {
|
|
|
+ ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(___obj.GetType()) as CLRType;
|
|
|
+ ___type.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.StaticFieldReference:
|
|
|
+ {
|
|
|
+ var ___type = __domain.GetType(ptr_of_this_method->Value);
|
|
|
+ if(___type is ILType)
|
|
|
+ {
|
|
|
+ ((ILType)___type).StaticInstance[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ((CLRType)___type).SetStaticFieldValue(ptr_of_this_method->ValueLow, @awaiter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case ObjectTypes.ArrayReference:
|
|
|
+ {
|
|
|
+ var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as ET.ETTaskCompleted[];
|
|
|
+ instance_of_arrayReference[ptr_of_this_method->ValueLow] = @awaiter;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
|
|
|
+ WriteBackInstance(__domain, ptr_of_this_method, __mStack, ref instance_of_this_method);
|
|
|
+
|
|
|
+ __intp.Free(ptr_of_this_method);
|
|
|
+ return __ret;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+}
|