Browse Source

more overweaving tests and fixes: cflow

tags/V1_6_9M2
aclement 14 years ago
parent
commit
461888cce1

+ 5
- 0
weaver/src/org/aspectj/weaver/bcel/BcelClassWeaver.java View File

@@ -422,6 +422,7 @@ class BcelClassWeaver implements IClassWeaver {
isChanged = true;
}

WeaverStateInfo typeWeaverState = (world.isOverWeaving() ? getLazyClassGen().getType().getWeaverState() : null);
// start by munging all typeMungers
for (ConcreteTypeMunger o : typeMungers) {
if (!(o instanceof BcelTypeMunger)) {
@@ -429,6 +430,10 @@ class BcelClassWeaver implements IClassWeaver {
continue;
}
BcelTypeMunger munger = (BcelTypeMunger) o;

if (typeWeaverState != null && typeWeaverState.isAspectAlreadyApplied(munger.getAspectType())) {
continue;
}
boolean typeMungerAffectedType = munger.munge(this);
if (typeMungerAffectedType) {
isChanged = true;

+ 1
- 1
weaver/src/org/aspectj/weaver/bcel/BcelWeaver.java View File

@@ -1997,7 +1997,7 @@ public class BcelWeaver {
} else {
for (ShadowMunger munger : list) {
if (typeWeaverState != null) { // will only be null if overweaving is ON and there is weaverstate
ResolvedType declaringAspect = munger.getDeclaringType();
ResolvedType declaringAspect = munger.getConcreteAspect();// getDeclaringType();
if (typeWeaverState.isAspectAlreadyApplied(declaringAspect)) {
continue;
}

Loading…
Cancel
Save