aboutsummaryrefslogtreecommitdiffstats
path: root/weaver/src
diff options
context:
space:
mode:
authorAndy Clement <aclement@gopivotal.com>2013-07-22 14:47:02 -0700
committerAndy Clement <andrew.clement@gmail.com>2013-07-22 14:50:14 -0700
commit302c14ee680d5782cba619d8cc748e60afd09561 (patch)
tree9c023bcb46b7165866dc8a81e23c15df58249dcd /weaver/src
parente6cb5086ad825e8df5f182aa0c5586b0b4af9d21 (diff)
downloadaspectj-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.java10
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;
}