aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoraclement <aclement>2008-05-20 18:30:38 +0000
committeraclement <aclement>2008-05-20 18:30:38 +0000
commitf0142758d0b83904bd648dddf270199777d5ec6c (patch)
tree96841d7fc3f4bf128a37c4c194da4d5230991f93 /weaver
parent2cb78e1ec067d44db32f71021c4d43bed243c624 (diff)
downloadaspectj-f0142758d0b83904bd648dddf270199777d5ec6c.tar.gz
aspectj-f0142758d0b83904bd648dddf270199777d5ec6c.zip
232712: fix - remove native when creating bridge method
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
index 98e731490..7d08cfeb2 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
@@ -398,7 +398,9 @@ class BcelClassWeaver implements IClassWeaver {
whatToBridgeToMethodGen.getSignature());
}
LazyMethodGen bridgeMethod = makeBridgeMethod(clazz,theBridgeMethod); // The bridge method in this type will have the same signature as the one in the supertype
- bridgeMethod.setAccessFlags(bridgeMethod.getAccessFlags() | 0x00000040 /*BRIDGE = 0x00000040*/ );
+ int newflags = bridgeMethod.getAccessFlags() | 0x00000040;/*BRIDGE = 0x00000040*/
+ if ((newflags & 0x00000100) !=0) newflags = newflags - 0x100;/* NATIVE = 0x00000100 - need to clear it */
+ bridgeMethod.setAccessFlags(newflags );
Type returnType = BcelWorld.makeBcelType(theBridgeMethod.getReturnType());
Type[] paramTypes = BcelWorld.makeBcelTypes(theBridgeMethod.getParameterTypes());
Type[] newParamTypes=whatToBridgeToMethodGen.getArgumentTypes();