From 59d602e9b7d902606635998544a2f2140d9fde37 Mon Sep 17 00:00:00 2001 From: msridhar1 Date: Fri, 17 Feb 2012 20:20:36 +0000 Subject: [PATCH] added a recursion check git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4490 f5eafffb-2e1d-0410-98e4-8ec43c5233c4 --- .../ibm/wala/cast/js/ipa/callgraph/ForInContextSelector.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ForInContextSelector.java b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ForInContextSelector.java index 5d068df01..3dcc335e0 100755 --- a/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ForInContextSelector.java +++ b/com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/ForInContextSelector.java @@ -339,7 +339,10 @@ public class ForInContextSelector implements ContextSelector { return new SelectiveCPAContext(receiver); } else if (USE_1LEVEL_IN_BODIES && FORIN_MARKER.equals(caller.getContext().get(FORIN_KEY))) { if (! identifyDependentParameters(caller, site).isEmpty()) { - return oneLevel.getCalleeTarget(caller, site, callee, receiver); + // RECURSION CHECK: only add one level of caller-site contexts if the caller and callee methods are distinct + if (!caller.getMethod().equals(callee)) { + return oneLevel.getCalleeTarget(caller, site, callee, receiver); + } } else { return null; }