diff options
author | jfrijters <jfrijters> | 2014-07-01 19:00:54 +0400 |
---|---|---|
committer | jfrijters <jfrijters> | 2014-07-01 19:00:54 +0400 |
commit | 021ca974f9a23b87c36f46039d1caaf106bda980 (patch) | |
tree | 6c71c124dd450ecd5e62792402321bc39586e77d | |
parent | b1978d11757ae9dce10b8398df0b498c604658dd (diff) |
Privileged invokespecial (from anonymous class to host class) should not go through invokespecial stub.
-rw-r--r-- | runtime/compiler.cs | 4 |
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)); |