Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Au <andrewau@microsoft.com>2018-02-02 02:19:01 +0300
committerAndrew Au <andrewau@microsoft.com>2018-02-02 02:19:01 +0300
commitf879dfd411609d8b4c1dfe1abb7559a6c1aef6f4 (patch)
tree776496d59dd060a33028a9a403b9b7140227877e /src/Runtime.Base
parent15a932b833fa3d6199a982088d43cecac2721ea1 (diff)
FuncEvalWithAppDomain - supporting FuncEval in case of having multiple AppDomains.
[tfs-changeset: 1687664]
Diffstat (limited to 'src/Runtime.Base')
-rw-r--r--src/Runtime.Base/src/System/Diagnostics/Eval.cs16
-rw-r--r--src/Runtime.Base/src/System/Runtime/CalliIntrinsics.cs2
-rw-r--r--src/Runtime.Base/src/System/Runtime/InternalCalls.cs2
3 files changed, 9 insertions, 11 deletions
diff --git a/src/Runtime.Base/src/System/Diagnostics/Eval.cs b/src/Runtime.Base/src/System/Diagnostics/Eval.cs
index eaa76dfe4..ecb535876 100644
--- a/src/Runtime.Base/src/System/Diagnostics/Eval.cs
+++ b/src/Runtime.Base/src/System/Diagnostics/Eval.cs
@@ -3,6 +3,7 @@
// See the LICENSE file in the project root for more information.
using System;
+using System.Diagnostics;
using System.Runtime;
using System.Runtime.CompilerServices;
@@ -10,20 +11,13 @@ namespace System.Diagnostics
{
public static class Eval
{
- private static IntPtr s_highLevelDebugFuncEvalHelper;
-
- [MethodImpl(MethodImplOptions.NoInlining)]
- [RuntimeExport("RhpSetHighLevelDebugFuncEvalHelper")]
- public static void SetHighLevelDebugFuncEvalHelper(IntPtr ptr)
- {
- s_highLevelDebugFuncEvalHelper = ptr;
- }
-
[MethodImpl(MethodImplOptions.NoInlining)]
[RuntimeExport("RhpDebugFuncEvalHelper")]
- public static void RhpDebugFuncEvalHelper()
+ public unsafe static void RhpDebugFuncEvalHelper(IntPtr unusedTransitionBlock, IntPtr classlibAddress)
{
- CalliIntrinsics.CallVoid(s_highLevelDebugFuncEvalHelper);
+ IntPtr pDebugFuncEvalHelper = (IntPtr)InternalCalls.RhpGetClasslibFunctionFromCodeAddress(classlibAddress, ClassLibFunctionId.DebugFuncEvalHelper);
+ Debug.Assert(pDebugFuncEvalHelper != IntPtr.Zero);
+ CalliIntrinsics.CallVoid(pDebugFuncEvalHelper);
}
}
} \ No newline at end of file
diff --git a/src/Runtime.Base/src/System/Runtime/CalliIntrinsics.cs b/src/Runtime.Base/src/System/Runtime/CalliIntrinsics.cs
index d23b9636a..af520c824 100644
--- a/src/Runtime.Base/src/System/Runtime/CalliIntrinsics.cs
+++ b/src/Runtime.Base/src/System/Runtime/CalliIntrinsics.cs
@@ -11,12 +11,14 @@ namespace System.Runtime
internal static unsafe partial class CalliIntrinsics
{
internal static void CallVoid(IntPtr pfn) { Call<int>(pfn); }
+ internal static void CallVoid(IntPtr pfn, long arg0) { Call<int>(pfn, arg0); }
internal static void CallVoid(IntPtr pfn, object arg0) { Call<int>(pfn, arg0); }
internal static void CallVoid(IntPtr pfn, IntPtr arg0, object arg1) { Call<int>(pfn, arg0, arg1); }
internal static void CallVoid(IntPtr pfn, RhFailFastReason arg0, object arg1, IntPtr arg2, IntPtr arg3) { Call<int>(pfn, arg0, arg1, arg2, arg3); }
internal static void CallVoid(IntPtr pfn, object arg0, IntPtr arg1, int arg2) { Call<int>(pfn, arg0, arg1, arg2); }
internal static T Call<T>(IntPtr pfn) { throw new NotImplementedException(); }
+ internal static T Call<T>(IntPtr pfn, long arg0) { throw new NotImplementedException(); }
internal static T Call<T>(IntPtr pfn, object arg0) { throw new NotImplementedException(); }
internal static T Call<T>(IntPtr pfn, IntPtr arg0) { throw new NotImplementedException(); }
internal static T Call<T>(IntPtr pfn, IntPtr arg0, object arg1) { throw new NotImplementedException(); }
diff --git a/src/Runtime.Base/src/System/Runtime/InternalCalls.cs b/src/Runtime.Base/src/System/Runtime/InternalCalls.cs
index 89730ba0f..e647e3ab0 100644
--- a/src/Runtime.Base/src/System/Runtime/InternalCalls.cs
+++ b/src/Runtime.Base/src/System/Runtime/InternalCalls.cs
@@ -42,6 +42,8 @@ namespace System.Runtime
CheckStaticClassConstruction = 4,
GetSystemArrayEEType = 5,
OnFirstChance = 6,
+ DebugFuncEvalHelper = 7,
+ DebugFuncEvalAbortHelper = 8,
}
internal static class InternalCalls