aboutsummaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-04-25 18:11:33 +0000
committerjhugunin <jhugunin>2003-04-25 18:11:33 +0000
commit1e502f504f2ad333ad5627d8e9d106315c38ecc0 (patch)
treed3a2c3d6893512090b3e2c6ff3c0d26a0b6e26ac /weaver
parent598c72655e13bc4f65d2e357ab645b05b69821ca (diff)
downloadaspectj-1e502f504f2ad333ad5627d8e9d106315c38ecc0.tar.gz
aspectj-1e502f504f2ad333ad5627d8e9d106315c38ecc0.zip
fix and tests for
Bugzilla Bug 36803 BCException thrown by AspectJ 1.1rc1
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java1
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/Pointcut.java6
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java2
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java2
4 files changed, 6 insertions, 5 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java b/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java
index 6fd204257..8be3671f0 100644
--- a/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/KindedPointcut.java
@@ -103,7 +103,6 @@ public class KindedPointcut extends Pointcut {
public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) {
return new KindedPointcut(kind, signature);
- //return this; //??? no pointers out of here so we're okay
}
public Shadow.Kind getKind() {
diff --git a/weaver/src/org/aspectj/weaver/patterns/Pointcut.java b/weaver/src/org/aspectj/weaver/patterns/Pointcut.java
index 3cd0c9cf6..91fe52860 100644
--- a/weaver/src/org/aspectj/weaver/patterns/Pointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/Pointcut.java
@@ -137,7 +137,9 @@ public abstract class Pointcut extends PatternNode {
* @param bindings a Map from formal index in the current lexical context
* -> formal index in the concrete advice that will run
*
- * ??? does this return a new pointcut
+ * This must always return a new Pointcut object (even if the concretized
+ * Pointcut is identical to the resolved one). That behavior is
+ * assumed in many places.
* XXX fix implementors to handle state
*/
protected abstract Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings);
@@ -212,7 +214,7 @@ public abstract class Pointcut extends PatternNode {
public Pointcut concretize1(
ResolvedTypeX inAspect,
IntMap bindings) {
- return this;
+ return makeMatchesNothing(state);
}
diff --git a/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java b/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java
index f2f8addc6..9775f705e 100644
--- a/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/WithinPointcut.java
@@ -93,6 +93,6 @@ public class WithinPointcut extends Pointcut {
public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) {
- return this; //??? no pointers out of here so we're okay
+ return new WithinPointcut(typePattern);
}
}
diff --git a/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java b/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java
index d673c8ecb..71dba0d30 100644
--- a/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/WithincodePointcut.java
@@ -84,6 +84,6 @@ public class WithincodePointcut extends Pointcut {
public Pointcut concretize1(ResolvedTypeX inAspect, IntMap bindings) {
- return this; //??? no pointers out of here so we're okay
+ return new WithincodePointcut(signature);
}
}