summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authoracolyer <acolyer>2005-09-01 12:37:41 +0000
committeracolyer <acolyer>2005-09-01 12:37:41 +0000
commitb79814ee09ddda6b8b48b9f98a39c431f1368790 (patch)
tree528dae7165e3c9c9d1bea22dd33e706f0639ce27 /weaver
parent23d55261d14e8b981270a82347e84f4c0cd6b718 (diff)
downloadaspectj-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.java10
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()),