Browse Source

integrated head into extensions branch

extensions
aclement 17 years ago
parent
commit
c366ca2a94

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

} }


} }

+ 3
- 1
weaver/src/org/aspectj/weaver/ResolvedType.java View File

boolean shouldSkip = false; boolean shouldSkip = false;
for (int j = 0; j < rtx.interTypeMungers.size(); j++) { for (int j = 0; j < rtx.interTypeMungers.size(); j++) {
ConcreteTypeMunger munger = (ConcreteTypeMunger) rtx.interTypeMungers.get(j); ConcreteTypeMunger munger = (ConcreteTypeMunger) rtx.interTypeMungers.get(j);
if (munger.getMunger()!=null && munger.getMunger().getKind() == ResolvedTypeMunger.Parent) {
if (munger.getMunger()!=null && munger.getMunger().getKind() == ResolvedTypeMunger.Parent
&& ((NewParentTypeMunger)munger.getMunger()).getNewParent().equals(iface) // pr171953
) {
shouldSkip = true; shouldSkip = true;
break; break;
} }

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

extraParamOffset += thisJoinPointVar.getType().getSize(); extraParamOffset += thisJoinPointVar.getType().getSize();
} }
Type[] adviceParameterTypes = adviceMethod.getArgumentTypes();
// We use the munger signature here because it allows for any parameterization of the mungers pointcut that
// may have occurred ie. if the pointcut is p(T t) in the super aspect and that has become p(Foo t) in the sub aspect
// then here the munger signature will have 'Foo' as an argument in it whilst the adviceMethod argument type will be 'Object' - since
// it represents the advice method in the superaspect which uses the erasure of the type variable p(Object t) - see pr174449.
Type[] adviceParameterTypes =
BcelWorld.makeBcelTypes(munger.getSignature().getParameterTypes());
// adviceMethod.getArgumentTypes();
adviceMethod.getArgumentTypes(); // forces initialization ... dont like this but seems to be required for some tests to pass, I think that means
// there is a LazyMethodGen method that is not correctly setup to call initialize() when it is invoked - but I dont have
// time right now to discover which
Type[] extractedMethodParameterTypes = extractedMethod.getArgumentTypes(); Type[] extractedMethodParameterTypes = extractedMethod.getArgumentTypes();
Type[] parameterTypes = Type[] parameterTypes =
new Type[extractedMethodParameterTypes.length new Type[extractedMethodParameterTypes.length

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

return true; return true;
//throw new BCException("no match for " + member + " in " + gen); //throw new BCException("no match for " + member + " in " + gen);
} else if (member.getKind() == Member.STATIC_INITIALIZATION) { } else if (member.getKind() == Member.STATIC_INITIALIZATION) {
gen.forcePublic();
return true;
return gen.forcePublic();
} else { } else {
throw new RuntimeException("unimplemented"); throw new RuntimeException("unimplemented");
} }

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

} }
public void forcePublic() {
public boolean forcePublic() {
if (myGen.isPublic()) return false;
myGen.setAccessFlags(Utility.makePublic(myGen.getAccessFlags())); myGen.setAccessFlags(Utility.makePublic(myGen.getAccessFlags()));
return true;
} }



Loading…
Cancel
Save