internal static void EmitThrowNoSuchMethodErrorForSetter(CodeEmitter ilgen, MemberWrapper member) { #if STATIC_COMPILER StaticCompiler.IssueMessage(Message.EmittedNoSuchMethodError, "<unknown>", member.DeclaringType.Name + "." + member.Name + member.Signature); #endif // HACK the branch around the throw is to keep the verifier happy CodeEmitterLabel label = ilgen.DefineLabel(); ilgen.Emit(OpCodes.Ldc_I4_0); ilgen.EmitBrtrue(label); ilgen.EmitThrow("java.lang.NoSuchMethodError"); ilgen.MarkLabel(label); ilgen.Emit(OpCodes.Pop); if (!member.IsStatic) { ilgen.Emit(OpCodes.Pop); } }
internal HandleWrapper(MemberWrapper obj) { Value = (IntPtr)GCHandle.Alloc(obj, GCHandleType.WeakTrackResurrection); }
private static bool IsLambdaAltMetafactory(MemberWrapper mw) { return mw.Name == "altMetafactory" && mw.Signature == "(Ljava.lang.invoke.MethodHandles$Lookup;Ljava.lang.String;Ljava.lang.invoke.MethodType;[Ljava.lang.Object;)Ljava.lang.invoke.CallSite;" && mw.DeclaringType.Name == "java.lang.invoke.LambdaMetafactory"; }