summaryrefslogtreecommitdiffstats
path: root/weaver
diff options
context:
space:
mode:
authorjhugunin <jhugunin>2003-03-12 23:07:08 +0000
committerjhugunin <jhugunin>2003-03-12 23:07:08 +0000
commit7746fcb7e977c7a91bd70081a2197a999ec18ad3 (patch)
tree4e4e458141708cb69d58b31043883be4f6c2871b /weaver
parent519aa42cff336a34041df665c4c7e8f738274973 (diff)
downloadaspectj-7746fcb7e977c7a91bd70081a2197a999ec18ad3.tar.gz
aspectj-7746fcb7e977c7a91bd70081a2197a999ec18ad3.zip
fix and test for Bugzilla Bug 34858
Weaver crash
Diffstat (limited to 'weaver')
-rw-r--r--weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java b/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java
index 68d9a4e88..7345ecffa 100644
--- a/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java
+++ b/weaver/src/org/aspectj/weaver/patterns/CflowPointcut.java
@@ -167,6 +167,11 @@ public class CflowPointcut extends Pointcut {
List slots = new ArrayList();
for (int i=0, len=freeVars.length; i < len; i++) {
int freeVar = freeVars[i];
+
+ // we don't need to keep state that isn't actually exposed to advice
+ //??? this means that we will store some state that we won't actually use, optimize this later
+ if (!bindings.hasKey(freeVar)) continue;
+
int formalIndex = bindings.get(freeVar);
ResolvedTypeX formalType =
bindings.getAdviceSignature().getParameterTypes()[formalIndex].resolve(world);