aboutsummaryrefslogtreecommitdiffstats
path: root/weaver/src
diff options
context:
space:
mode:
authoraclement <aclement>2005-01-31 13:59:04 +0000
committeraclement <aclement>2005-01-31 13:59:04 +0000
commit51aedc9a20c3c571f01bbfd79ca357759e008479 (patch)
tree445fe0db42f3272303aab0d216e8b68d86895b93 /weaver/src
parent3a977b2c73f9dffbf5a2f2274079053c7193a954 (diff)
downloadaspectj-51aedc9a20c3c571f01bbfd79ca357759e008479.tar.gz
aspectj-51aedc9a20c3c571f01bbfd79ca357759e008479.zip
Updates for annotation binding. Support for static methods !!
Diffstat (limited to 'weaver/src')
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/BcelShadow.java9
-rw-r--r--weaver/src/org/aspectj/weaver/bcel/KindedAnnotationAccessVar.java6
2 files changed, 8 insertions, 7 deletions
diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
index 142ac4d9a..bcc0fd05d 100644
--- a/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
+++ b/weaver/src/org/aspectj/weaver/bcel/BcelShadow.java
@@ -1309,7 +1309,7 @@ public class BcelShadow extends Shadow {
// !!! Refactor these once all shadow kinds added - there is lots of commonality
if (getKind() == Shadow.MethodCall) {
- ResolvedMember rm[] = this.getTargetType().getDeclaredMethods(world);
+ ResolvedMember rm[] = getSignature().getDeclaringType().getDeclaredMethods(world);
ResolvedMember found = null;
String searchString = getSignature().getName()+getSignature().getParameterSignature();
for (int i = 0; i < rm.length; i++) {
@@ -1321,11 +1321,12 @@ public class BcelShadow extends Shadow {
ResolvedTypeX[] anns = found.getAnnotationTypes();
for (int i = 0; i < anns.length; i++) {
ResolvedTypeX typeX = anns[i];
- kindedAnnotationVars.put(typeX,new KindedAnnotationAccessVar(typeX.resolve(world),(BcelVar)getTargetVar(),getSignature()));
+ kindedAnnotationVars.put(typeX,
+ new KindedAnnotationAccessVar(typeX.resolve(world),getSignature().getDeclaringType(),getSignature()));
}
}
if (getKind() == Shadow.MethodExecution) {
- ResolvedMember rm[] = this.getTargetType().getDeclaredMethods(world);
+ ResolvedMember rm[] = getSignature().getDeclaringType().getDeclaredMethods(world);
ResolvedMember found = null;
String searchString = getSignature().getName()+getSignature().getParameterSignature();
for (int i = 0; i < rm.length; i++) {
@@ -1337,7 +1338,7 @@ public class BcelShadow extends Shadow {
ResolvedTypeX[] anns = found.getAnnotationTypes();
for (int i = 0; i < anns.length; i++) {
ResolvedTypeX typeX = anns[i];
- kindedAnnotationVars.put(typeX,new KindedAnnotationAccessVar(typeX.resolve(world),(BcelVar)getTargetVar(),getSignature()));
+ kindedAnnotationVars.put(typeX,new KindedAnnotationAccessVar(typeX.resolve(world),getSignature().getDeclaringType(),getSignature()));
}
}
// if (getKind() == Shadow.FieldSet) {
diff --git a/weaver/src/org/aspectj/weaver/bcel/KindedAnnotationAccessVar.java b/weaver/src/org/aspectj/weaver/bcel/KindedAnnotationAccessVar.java
index d8902a32a..c86f7e328 100644
--- a/weaver/src/org/aspectj/weaver/bcel/KindedAnnotationAccessVar.java
+++ b/weaver/src/org/aspectj/weaver/bcel/KindedAnnotationAccessVar.java
@@ -33,7 +33,7 @@ public class KindedAnnotationAccessVar extends BcelVar {
private Member stackField;
private int index;
- BcelVar target;
+ TypeX target;
Member sig;
// public KindedAnnotationAccessVar(ResolvedTypeX type, Member stackField, int index) {
@@ -42,7 +42,7 @@ public class KindedAnnotationAccessVar extends BcelVar {
// this.index = index;
// }
- public KindedAnnotationAccessVar(ResolvedTypeX type,BcelVar theTargetIsStoredHere,Member sig) {
+ public KindedAnnotationAccessVar(ResolvedTypeX type,TypeX theTargetIsStoredHere,Member sig) {
super(type,0);
target = theTargetIsStoredHere;
this.sig = sig;
@@ -94,7 +94,7 @@ public class KindedAnnotationAccessVar extends BcelVar {
// Calls getClass
// System.err.println("What is the class of target? "+target.getType());
- il.append(fact.createConstant(BcelWorld.makeBcelType(target.getType())));
+ il.append(fact.createConstant(BcelWorld.makeBcelType(target)));
// il.append(target.createLoad(fact));
// il.append(fact.createInvoke("java/lang/Object","getClass",jlClass,new Type[]{},Constants.INVOKEVIRTUAL));