diff options
author | aclement <aclement> | 2005-03-11 17:31:18 +0000 |
---|---|---|
committer | aclement <aclement> | 2005-03-11 17:31:18 +0000 |
commit | a0aeb25088c023f6da9eccfae37fa72acab0f309 (patch) | |
tree | 31bf05ef925adba424b88a2cfa2d17b0d509ff98 /weaver/src/org | |
parent | 79129daa01f6fc8036a4bf7e58ffc8aa8e363ccb (diff) | |
download | aspectj-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.java | 8 |
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; |