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

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Karlaš <david.karlas@xamarin.com>2017-06-16 09:16:05 +0300
committerDavid Karlaš <david.karlas@xamarin.com>2017-06-16 09:23:28 +0300
commit866ad511fe42a74179e3078ea0d321dce1ad8ce4 (patch)
tree0349ab4bfd490f70fe60e43b167fa998bcd25ab8 /mcs/class/Mono.Debugger.Soft
parent86f8dd621a0d746557516b0e0cd70f8e5589ae10 (diff)
Bug 36053 - Broken enum values conversion
plus moved some code to correct location https://github.com/mono/debugger-libs/commit/d65261617baddb5b41f665b0eb717cd1f81873b6
Diffstat (limited to 'mcs/class/Mono.Debugger.Soft')
-rw-r--r--mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ILInterpreter.cs11
1 files changed, 11 insertions, 0 deletions
diff --git a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ILInterpreter.cs b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ILInterpreter.cs
index 8a2a3ef939c..4c2b33ee99e 100644
--- a/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ILInterpreter.cs
+++ b/mcs/class/Mono.Debugger.Soft/Mono.Debugger.Soft/ILInterpreter.cs
@@ -30,6 +30,11 @@ namespace Mono.Debugger.Soft
if (args != null && args.Length != 0)
throw new NotSupportedException ();
+ //If method is virtual we can't optimize(execute IL) because it's maybe
+ //overriden... call runtime to invoke overriden version...
+ if (method.IsVirtual)
+ throw new NotSupportedException ();
+
if (method.IsStatic || method.DeclaringType.IsValueType || this_val == null || !(this_val is ObjectMirror))
throw new NotSupportedException ();
@@ -350,6 +355,12 @@ namespace Mono.Debugger.Soft
} catch {
throw new NotSupportedException ();
}
+ } else if (method.ReturnType.IsEnum && primitive != null) {
+ try {
+ res = method.VirtualMachine.CreateEnumMirror (method.ReturnType, primitive);
+ } catch {
+ throw new NotSupportedException ();
+ }
}
return res;