]> source.dussan.org Git - aspectj.git/commitdiff
slowly merging in optimizations
authoraclement <aclement>
Sat, 7 Nov 2009 22:20:43 +0000 (22:20 +0000)
committeraclement <aclement>
Sat, 7 Nov 2009 22:20:43 +0000 (22:20 +0000)
weaver/src/org/aspectj/weaver/bcel/AtAjAttributes.java
weaver/src/org/aspectj/weaver/bcel/BcelAccessForInlineMunger.java
weaver/src/org/aspectj/weaver/bcel/BcelTypeMunger.java

index 6aa287a1d23df7d99e325bb130d85be7aa961004..5b97d8986ac709b45058e086905c51531d307d1e 100644 (file)
@@ -779,7 +779,8 @@ public class AtAjAttributes {
 
                                        // then iterate on field interface hierarchy (not object)
                                        boolean hasAtLeastOneMethod = false;
-                                       ResolvedMember[] methods = fieldType.getMethodsWithoutIterator(true, false).toArray(new ResolvedMember[0]);
+                                       ResolvedMember[] methods = fieldType.getMethodsWithoutIterator(true, false, false).toArray(
+                                                       new ResolvedMember[0]);
                                        for (int i = 0; i < methods.length; i++) {
                                                ResolvedMember method = methods[i];
                                                if (method.isAbstract()) {
@@ -970,7 +971,8 @@ public class AtAjAttributes {
                        ResolvedType typeForDelegation = (ResolvedType) iterator.next();
                        // TODO check for overlapping interfaces. Eg. A implements I, I extends J - if they specify interfaces={I,J} we dont
                        // want to do any methods twice
-                       ResolvedMember[] methods = typeForDelegation.getMethodsWithoutIterator(true, false).toArray(new ResolvedMember[0]);
+                       ResolvedMember[] methods = typeForDelegation.getMethodsWithoutIterator(true, false, false).toArray(
+                                       new ResolvedMember[0]);
                        for (int i = 0; i < methods.length; i++) {
                                ResolvedMember method = methods[i];
                                if (method.isAbstract()) {
index cffdec821e3a55b9e9299bcea727bf730de8cf20..32333c2041907368d082a1f151bfcf4bcf18b3dd 100644 (file)
@@ -153,7 +153,7 @@ public class BcelAccessForInlineMunger extends BcelTypeMunger {
                                ResolvedType callee = m_aspectGen.getWorld().resolve(UnresolvedType.forName(invoke.getClassName(cpg)));
 
                                // look in the whole method list and not just declared for super calls and alike
-                               List methods = callee.getMethodsWithoutIterator(false, true);
+                               List methods = callee.getMethodsWithoutIterator(false, true, false);
                                for (Iterator iter = methods.iterator(); iter.hasNext();) {
                                        ResolvedMember resolvedMember = (ResolvedMember) iter.next();
                                        if (invoke.getName(cpg).equals(resolvedMember.getName())
index 40b274b003f838e5d92aed741a4e86946f11befe..8cc4121f8ccde7378192bef649c384781402f264 100644 (file)
@@ -210,7 +210,7 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
                cont = enforceDecpRule1_abstractMethodsImplemented(weaver, munger.getSourceLocation(), newParentTarget, newParent);
                cont = enforceDecpRule2_cantExtendFinalClass(weaver, munger.getSourceLocation(), newParentTarget, newParent) && cont;
 
-               List methods = newParent.getMethodsWithoutIterator(false, true);
+               List methods = newParent.getMethodsWithoutIterator(false, true, false);
                for (Iterator iter = methods.iterator(); iter.hasNext();) {
                        ResolvedMember superMethod = (ResolvedMember) iter.next();
                        if (!superMethod.getName().equals("<init>")) {
@@ -258,7 +258,7 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
                        // classes
                        // or
                        // interfaces
-                       List methods = newParent.getMethodsWithoutIterator(false, true);
+                       List methods = newParent.getMethodsWithoutIterator(false, true, false);
                        for (Iterator i = methods.iterator(); i.hasNext();) {
                                ResolvedMember o = (ResolvedMember) i.next();
                                if (o.isAbstract() && !o.getName().startsWith("ajc$interField")) { // Ignore
@@ -269,7 +269,7 @@ public class BcelTypeMunger extends ConcreteTypeMunger {
                                        // prefixed
                                        // methods
                                        ResolvedMember discoveredImpl = null;
-                                       List newParentTargetMethods = newParentTarget.getType().getMethodsWithoutIterator(false, true);
+                                       List newParentTargetMethods = newParentTarget.getType().getMethodsWithoutIterator(false, true, false);
                                        for (Iterator ii = newParentTargetMethods.iterator(); ii.hasNext() && discoveredImpl == null;) {
                                                ResolvedMember gen2 = (ResolvedMember) ii.next();
                                                if (gen2.getName().equals(o.getName()) && !gen2.isAbstract()) {