From 75ce009e27c754b669d8949342a3c2e15c197db4 Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 26 Feb 2004 10:00:31 +0000 Subject: [PATCH] Fix for preventing the use of if/target/this/args/cflow/cflowbelow in DeclareSofts. (Reordered flow in creating declare soft munger and concretizing the pointcut) --- weaver/src/org/aspectj/weaver/CrosscuttingMembers.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java b/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java index 0992fef89..62ba60412 100644 --- a/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java +++ b/weaver/src/org/aspectj/weaver/CrosscuttingMembers.java @@ -108,9 +108,11 @@ public class CrosscuttingMembers { declareParents.add(dp); } else if (declare instanceof DeclareSoft) { DeclareSoft d = (DeclareSoft)declare; - Pointcut concretePointcut = d.getPointcut().concretize(inAspect, 0); + // Ordered so that during concretization we can check the related munger + ShadowMunger m = Advice.makeSoftener(world, d.getPointcut(), d.getException(),inAspect); + Pointcut concretePointcut = d.getPointcut().concretize(inAspect, 0,m); + m.pointcut = concretePointcut; declareSofts.add(new DeclareSoft(d.getException(), concretePointcut)); - ShadowMunger m = Advice.makeSoftener(world, concretePointcut, d.getException(),inAspect); addConcreteShadowMunger(m); } else { throw new RuntimeException("unimplemented"); -- 2.39.5