diff options
author | jhugunin <jhugunin> | 2003-04-25 18:11:33 +0000 |
---|---|---|
committer | jhugunin <jhugunin> | 2003-04-25 18:11:33 +0000 |
commit | 1e502f504f2ad333ad5627d8e9d106315c38ecc0 (patch) | |
tree | d3a2c3d6893512090b3e2c6ff3c0d26a0b6e26ac /weaver | |
parent | 598c72655e13bc4f65d2e357ab645b05b69821ca (diff) | |
download | aspectj-1e502f504f2ad333ad5627d8e9d106315c38ecc0.tar.gz aspectj-1e502f504f2ad333ad5627d8e9d106315c38ecc0.zip |
fix and tests for
Bugzilla Bug 36803
BCException thrown by AspectJ 1.1rc1
Diffstat (limited to 'weaver')
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); } } |