Simplify MethodTargetSelector and ContextSelector interfaces; delete optimizations based on allSitesDispatchIdentically and mayReturnSyntheticMethod.
Also some Cast bug fixes. git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@2655 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
parent
aa33858080
commit
69c1bfa991
|
@ -26,6 +26,7 @@ import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
|||
import com.ibm.wala.ipa.callgraph.impl.FakeRootMethod;
|
||||
import com.ibm.wala.ipa.cha.IClassHierarchy;
|
||||
import com.ibm.wala.ssa.SSAAbstractInvokeInstruction;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.ssa.SSANewInstruction;
|
||||
import com.ibm.wala.types.MethodReference;
|
||||
import com.ibm.wala.types.TypeReference;
|
||||
|
@ -45,8 +46,8 @@ public class JSCallGraph extends AstCallGraph {
|
|||
super(fakeRoot, cha.lookupClass(JavaScriptTypes.FakeRoot), cha, options, cache);
|
||||
}
|
||||
|
||||
public InducedCFG makeControlFlowGraph() {
|
||||
return new JSInducedCFG(getStatements(), this, Everywhere.EVERYWHERE);
|
||||
public InducedCFG makeControlFlowGraph(SSAInstruction[] instructions) {
|
||||
return new JSInducedCFG(instructions, this, Everywhere.EVERYWHERE);
|
||||
}
|
||||
|
||||
public SSANewInstruction addAllocation(TypeReference T) {
|
||||
|
|
|
@ -37,7 +37,7 @@ public class JSZeroOrOneXCFABuilder extends JSCFABuilder {
|
|||
|
||||
options.setSelector(new JavaScriptConstructTargetSelector(cha, options.getMethodTargetSelector()));
|
||||
|
||||
ContextSelector def = new DefaultContextSelector(cha, options.getMethodTargetSelector());
|
||||
ContextSelector def = new DefaultContextSelector();
|
||||
ContextSelector contextSelector = appContextSelector == null ? def : new DelegatingContextSelector(appContextSelector, def);
|
||||
if (doOneCFA) {
|
||||
contextSelector = new nCFAContextSelector(1, contextSelector);
|
||||
|
@ -49,18 +49,12 @@ public class JSZeroOrOneXCFABuilder extends JSCFABuilder {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param options
|
||||
* options that govern call graph construction
|
||||
* @param cha
|
||||
* governing class hierarchy
|
||||
* @param cl
|
||||
* classloader that can find DOMO resources
|
||||
* @param scope
|
||||
* representation of the analysis scope
|
||||
* @param xmlFiles
|
||||
* set of Strings that are names of XML files holding bypass logic specifications.
|
||||
* @param dmd
|
||||
* deployment descriptor abstraction
|
||||
* @param options options that govern call graph construction
|
||||
* @param cha governing class hierarchy
|
||||
* @param cl classloader that can find DOMO resources
|
||||
* @param scope representation of the analysis scope
|
||||
* @param xmlFiles set of Strings that are names of XML files holding bypass logic specifications.
|
||||
* @param dmd deployment descriptor abstraction
|
||||
* @return a 0-1-Opt-CFA Call Graph Builder.
|
||||
*/
|
||||
public static JSCFABuilder make(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, ClassLoader cl,
|
||||
|
|
|
@ -16,23 +16,21 @@ import com.ibm.wala.classLoader.IClass;
|
|||
import com.ibm.wala.ipa.callgraph.impl.Everywhere;
|
||||
import com.ibm.wala.ipa.summaries.MethodSummary;
|
||||
import com.ibm.wala.ipa.summaries.SummarizedMethod;
|
||||
import com.ibm.wala.ssa.SSAInstruction;
|
||||
import com.ibm.wala.types.MethodReference;
|
||||
|
||||
public class JavaScriptSummarizedFunction extends SummarizedMethod {
|
||||
|
||||
public JavaScriptSummarizedFunction(MethodReference ref,
|
||||
MethodSummary summary,
|
||||
IClass declaringClass)
|
||||
{
|
||||
public JavaScriptSummarizedFunction(MethodReference ref, MethodSummary summary, IClass declaringClass) {
|
||||
super(ref, summary, declaringClass);
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
return this==o;
|
||||
return this == o;
|
||||
}
|
||||
|
||||
public InducedCFG makeControlFlowGraph() {
|
||||
return new JSInducedCFG(getStatements(), this, Everywhere.EVERYWHERE);
|
||||
public InducedCFG makeControlFlowGraph(SSAInstruction[] instructions) {
|
||||
return new JSInducedCFG(instructions, this, Everywhere.EVERYWHERE);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue