aboutsummaryrefslogtreecommitdiffstats
path: root/weaver/src/org
diff options
context:
space:
mode:
authoraclement <aclement>2005-03-11 17:31:18 +0000
committeraclement <aclement>2005-03-11 17:31:18 +0000
commita0aeb25088c023f6da9eccfae37fa72acab0f309 (patch)
tree31bf05ef925adba424b88a2cfa2d17b0d509ff98 /weaver/src/org
parent79129daa01f6fc8036a4bf7e58ffc8aa8e363ccb (diff)
downloadaspectj-a0aeb25088c023f6da9eccfae37fa72acab0f309.tar.gz
aspectj-a0aeb25088c023f6da9eccfae37fa72acab0f309.zip
Oops! Now skips advice/etc when looking for matches for dec @method/@ctor
Diffstat (limited to 'weaver/src/org')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java b/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
index 2eff51612..0581840eb 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java
@@ -423,7 +423,7 @@ class BcelClassWeaver implements IClassWeaver {
// go through all the fields
for (int memberCounter = 0;memberCounter<members.size();memberCounter++) {
LazyMethodGen mg = (LazyMethodGen)members.get(memberCounter);
-
+ if (!mg.getName().startsWith(NameMangler.PREFIX)) {
// Single first pass
List worthRetrying = new ArrayList();
boolean modificationOccured = false;
@@ -454,7 +454,7 @@ class BcelClassWeaver implements IClassWeaver {
if (decaM.matches(mg.getMemberView(),world)) {
if (doesAlreadyHaveAnnotation(mg.getMemberView(),decaM,false)) continue; // skip this one...
mg.addAnnotation(decaM.getAnnotationX());
- AsmRelationshipProvider.getDefault().addDeclareAnnotationRelationship(decaM.getSourceLocation(),mg.getSourceLocation());
+ AsmRelationshipProvider.getDefault().addDeclareAnnotationRelationship(decaM.getSourceLocation(),clazz.getName(),mg.getMethod());
isChanged = true;
modificationOccured = true;
forRemoval.add(decaM);
@@ -462,6 +462,7 @@ class BcelClassWeaver implements IClassWeaver {
}
worthRetrying.removeAll(forRemoval);
}
+ }
}
}
return isChanged;
@@ -504,7 +505,7 @@ class BcelClassWeaver implements IClassWeaver {
// go through all the fields
for (int fieldCounter = 0;fieldCounter<fields.length;fieldCounter++) {
BcelField aBcelField = new BcelField(clazz.getBcelObjectType(),fields[fieldCounter]);
-
+ if (!aBcelField.getName().startsWith(NameMangler.PREFIX)) {
// Single first pass
List worthRetrying = new ArrayList();
boolean modificationOccured = false;
@@ -541,6 +542,7 @@ class BcelClassWeaver implements IClassWeaver {
}
worthRetrying.removeAll(forRemoval);
}
+ }
}
}
return isChanged;