From 16ce3a9ee884316fd0a1f70e8af1795fd01e4300 Mon Sep 17 00:00:00 2001 From: Parnassian Date: Thu, 6 Mar 2014 14:08:45 +0100 Subject: [PATCH] Fixed invoker adapter --- .../parabot/core/asm/adapters/AddInvokerAdapter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/parabotv2/src/org/parabot/core/asm/adapters/AddInvokerAdapter.java b/parabotv2/src/org/parabot/core/asm/adapters/AddInvokerAdapter.java index 5369d2c..b08d94f 100644 --- a/parabotv2/src/org/parabot/core/asm/adapters/AddInvokerAdapter.java +++ b/parabotv2/src/org/parabot/core/asm/adapters/AddInvokerAdapter.java @@ -1,5 +1,7 @@ package org.parabot.core.asm.adapters; +import java.lang.reflect.Modifier; + import org.objectweb.asm.Opcodes; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; @@ -39,7 +41,15 @@ public class AddInvokerAdapter implements Opcodes, Injectable { boolean isStatic = (this.mn.access & ACC_STATIC) != 0; - mn.access = mn.access | ACC_PUBLIC; + if(!Modifier.isPublic(mn.access)) { + if(Modifier.isPrivate(mn.access)) { + mn.access = mn.access & (~ACC_PRIVATE); + } + if(Modifier.isProtected(mn.access)) { + mn.access = mn.access & (~ACC_PROTECTED); + } + mn.access = mn.access | ACC_PUBLIC; + } if (!isStatic) m.visitVarInsn(ALOAD, 0);