diff options
author | Andy Clement <aclement@gopivotal.com> | 2013-07-22 14:47:02 -0700 |
---|---|---|
committer | Andy Clement <andrew.clement@gmail.com> | 2013-07-22 14:50:14 -0700 |
commit | 302c14ee680d5782cba619d8cc748e60afd09561 (patch) | |
tree | 9c023bcb46b7165866dc8a81e23c15df58249dcd /weaver/src | |
parent | e6cb5086ad825e8df5f182aa0c5586b0b4af9d21 (diff) | |
download | aspectj-302c14ee680d5782cba619d8cc748e60afd09561.tar.gz aspectj-302c14ee680d5782cba619d8cc748e60afd09561.zip |
Bug413378: ctor itd super call: test and fixAS_BETA_JAVA8_CREATED
Diffstat (limited to 'weaver/src')
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java index 1a1b81f54..9e5b6a210 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java @@ -1594,12 +1594,9 @@ public class BcelTypeMunger extends ConcreteTypeMunger { private void addNeededSuperCallMethods(BcelClassWeaver weaver, ResolvedType onType, Set<ResolvedMember> neededSuperCalls) { LazyClassGen gen = weaver.getLazyClassGen(); - - for (Iterator<ResolvedMember> iter = neededSuperCalls.iterator(); iter.hasNext();) { - ResolvedMember superMethod = iter.next(); + for (ResolvedMember superMethod: neededSuperCalls) { if (weaver.addDispatchTarget(superMethod)) { - // System.err.println("super type: " + - // superMethod.getDeclaringType() + ", " + gen.getType()); + // System.err.println("super type: " + superMethod.getDeclaringType() + ", " + gen.getType()); boolean isSuper = !superMethod.getDeclaringType().equals(gen.getType()); String dispatchName; if (isSuper) { @@ -1609,7 +1606,6 @@ public class BcelTypeMunger extends ConcreteTypeMunger { } superMethod = superMethod.resolve(weaver.getWorld()); LazyMethodGen dispatcher = makeDispatcher(gen, dispatchName, superMethod, weaver.getWorld(), isSuper); - weaver.addLazyMethodGen(dispatcher); } } @@ -1773,6 +1769,8 @@ public class BcelTypeMunger extends ConcreteTypeMunger { // don't forget to return!! body.append(InstructionConstants.RETURN); + addNeededSuperCallMethods(weaver, onType, munger.getSuperMethodsCalled()); + return true; } |