diff options
author | acolyer <acolyer> | 2005-09-01 12:37:41 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-09-01 12:37:41 +0000 |
commit | b79814ee09ddda6b8b48b9f98a39c431f1368790 (patch) | |
tree | 528dae7165e3c9c9d1bea22dd33e706f0639ce27 /weaver | |
parent | 23d55261d14e8b981270a82347e84f4c0cd6b718 (diff) | |
download | aspectj-b79814ee09ddda6b8b48b9f98a39c431f1368790.tar.gz aspectj-b79814ee09ddda6b8b48b9f98a39c431f1368790.zip |
enable an effectiveSignature to be set on a LazyMethodGen
Diffstat (limited to 'weaver')
-rw-r--r-- | weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java b/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java index 2c647f0d3..e3ce8170d 100644 --- a/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java +++ b/weaver/src/org/aspectj/weaver/bcel/LazyMethodGen.java @@ -58,9 +58,12 @@ import org.aspectj.weaver.AnnotationX; import org.aspectj.weaver.BCException; import org.aspectj.weaver.ISourceContext; import org.aspectj.weaver.MemberImpl; +import org.aspectj.weaver.ResolvedMember; import org.aspectj.weaver.ResolvedType; +import org.aspectj.weaver.Shadow; import org.aspectj.weaver.UnresolvedType; import org.aspectj.weaver.WeaverMessages; +import org.aspectj.weaver.AjAttribute.EffectiveSignatureAttribute; import org.aspectj.weaver.AjAttribute.WeaverVersionInfo; @@ -90,6 +93,7 @@ public final class LazyMethodGen { private List newAnnotations; private final LazyClassGen enclosingClass; private BcelMethod memberView; + private AjAttribute.EffectiveSignatureAttribute effectiveSignature; int highestLineNumber = 0; /** This is nonnull if this method is the result of an "inlining". We currently @@ -1356,9 +1360,15 @@ public final class LazyMethodGen { public AjAttribute.EffectiveSignatureAttribute getEffectiveSignature() { //if (memberView == null) return null; + if (effectiveSignature != null) return effectiveSignature; return memberView.getEffectiveSignature(); } + public void setEffectiveSignature(ResolvedMember member, Shadow.Kind kind, boolean shouldWeave) { + this.effectiveSignature = + new AjAttribute.EffectiveSignatureAttribute(member,kind,shouldWeave); + } + public String getSignature() { if (memberView!=null) return memberView.getSignature(); return MemberImpl.typesToSignature(BcelWorld.fromBcel(getReturnType()), |