diff --git a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java index bc6aebb79..3f8c10047 100644 --- a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java +++ b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FilteredFlowGraphBuilder.java @@ -1,7 +1,9 @@ package com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph; +import com.ibm.wala.cast.js.ipa.summaries.JavaScriptConstructorFunctions; import com.ibm.wala.classLoader.IMethod; import com.ibm.wala.ipa.callgraph.AnalysisCache; +import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.util.functions.Function; @@ -9,13 +11,13 @@ public class FilteredFlowGraphBuilder extends FlowGraphBuilder { private final Function filter; - public FilteredFlowGraphBuilder(IClassHierarchy cha, AnalysisCache cache, Function filter) { - super(cha, cache); + public FilteredFlowGraphBuilder(IClassHierarchy cha, AnalysisCache cache, JavaScriptConstructorFunctions selector, Function filter) { + super(cha, cache, selector); this.filter = filter; } @Override - protected void visitFunction(FlowGraph flowgraph, IMethod method) { + public void visitFunction(FlowGraph flowgraph, IMethod method) { if (filter.apply(method)) { super.visitFunction(flowgraph, method); } diff --git a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java index de60ed4d3..3aa4f97e3 100644 --- a/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java +++ b/com.ibm.wala.ide.jsdt/source/com/ibm/wala/cast/js/client/EclipseJavaScriptAnalysisEngine.java @@ -31,6 +31,7 @@ import com.ibm.wala.cast.js.html.IncludedPosition; import com.ibm.wala.cast.js.ipa.callgraph.JSAnalysisOptions; import com.ibm.wala.cast.js.ipa.callgraph.JSCallGraph; import com.ibm.wala.cast.js.ipa.callgraph.JSCallGraphUtil; +import com.ibm.wala.cast.js.ipa.summaries.JavaScriptConstructorFunctions; import com.ibm.wala.cast.js.loader.JavaScriptLoader; import com.ibm.wala.cast.js.loader.JavaScriptLoaderFactory; import com.ibm.wala.cast.js.translator.CAstRhinoTranslatorFactory; @@ -44,9 +45,9 @@ import com.ibm.wala.ide.util.JavaScriptEclipseProjectPath; import com.ibm.wala.ipa.callgraph.AnalysisCache; import com.ibm.wala.ipa.callgraph.AnalysisOptions; import com.ibm.wala.ipa.callgraph.AnalysisScope; -import com.ibm.wala.ipa.callgraph.CallGraph; import com.ibm.wala.ipa.callgraph.CallGraphBuilder; import com.ibm.wala.ipa.callgraph.Entrypoint; +import com.ibm.wala.ipa.callgraph.MethodTargetSelector; import com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis; import com.ibm.wala.ipa.cha.IClassHierarchy; import com.ibm.wala.types.ClassLoaderReference; @@ -166,8 +167,8 @@ public class EclipseJavaScriptAnalysisEngine extends EclipseProjectSourceAnalysi builderType.equals(BuilderType.PESSIMISTIC)? new PessimisticCallGraphBuilder(getClassHierarchy(), options, makeDefaultCache()) { @Override - protected FlowGraph flowGraphFactory() { - FlowGraphBuilder b = new FilteredFlowGraphBuilder(cha, cache, filter); + protected FlowGraph flowGraphFactory(JavaScriptConstructorFunctions selector) { + FlowGraphBuilder b = new FilteredFlowGraphBuilder(cha, cache, selector, filter); return b.buildFlowGraph(); } @Override @@ -177,8 +178,8 @@ public class EclipseJavaScriptAnalysisEngine extends EclipseProjectSourceAnalysi } : new OptimisticCallgraphBuilder(getClassHierarchy(), options, makeDefaultCache()) { @Override - protected FlowGraph flowGraphFactory() { - FlowGraphBuilder b = new FilteredFlowGraphBuilder(cha, cache, filter); + protected FlowGraph flowGraphFactory(JavaScriptConstructorFunctions selector) { + FlowGraphBuilder b = new FilteredFlowGraphBuilder(cha, cache, selector, filter); return b.buildFlowGraph(); } };