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

github.com/mono/ikvm-fork.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjfrijters <jfrijters>2014-07-01 19:00:54 +0400
committerjfrijters <jfrijters>2014-07-01 19:00:54 +0400
commit021ca974f9a23b87c36f46039d1caaf106bda980 (patch)
tree6c71c124dd450ecd5e62792402321bc39586e77d
parentb1978d11757ae9dce10b8398df0b498c604658dd (diff)
Privileged invokespecial (from anonymous class to host class) should not go through invokespecial stub.
-rw-r--r--runtime/compiler.cs4
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/compiler.cs b/runtime/compiler.cs
index b8e0f0ac..4d4000c4 100644
--- a/runtime/compiler.cs
+++ b/runtime/compiler.cs
@@ -1709,6 +1709,10 @@ sealed class Compiler
// if the method is private, we can get away with a callvirt (and not generate the stub)
method.EmitCallvirt(ilGenerator);
}
+ else if(instr.NormalizedOpCode == NormalizedByteCode.__privileged_invokespecial)
+ {
+ method.EmitCall(ilGenerator);
+ }
else
{
ilGenerator.Emit(OpCodes.Callvirt, context.GetInvokeSpecialStub(method));