@Override protected CGNode makeFakeRootNode() throws CancelException { return findOrCreateNode(new CrossLanguageFakeRoot(cha, options, getAnalysisCache()), Everywhere.EVERYWHERE); } }
@Override protected ExplicitCallGraph createEmptyCallGraph(IMethod fakeRootClass, AnalysisOptions options) { return new CrossLanguageCallGraph(makeRootNodeSelector(), fakeRootClass, options, getAnalysisCache()); }
public PointerKey getPointerKeyForObjectCatalog(InstanceKey I) { return ((AstPointerKeyFactory) getBuilder().getPointerKeyFactory()).getPointerKeyForObjectCatalog(I); }
protected void newFieldRead(CGNode opNode, int objVn, int fieldsVn, int lhsVn) { newFieldRead(opNode, objVn, fieldsVn, getBuilder().getPointerKeyForLocal(opNode, lhsVn)); }
public Iterator<PointerKey> getPointerKeysForReflectedFieldRead(InstanceKey I, InstanceKey F) { return ((AstPointerKeyFactory) getBuilder().getPointerKeyFactory()).getPointerKeysForReflectedFieldRead(I, F); }
public Iterator<PointerKey> getPointerKeysForReflectedFieldWrite(InstanceKey I, InstanceKey F) { return ((AstPointerKeyFactory) getBuilder().getPointerKeyFactory()).getPointerKeysForReflectedFieldWrite(I, F); }
@Override protected ExplicitCallGraph createEmptyCallGraph(IMethod fakeRootClass, AnalysisOptions options) { return new AstCallGraph(fakeRootClass, options, getAnalysisCache()); }
@Override public CallSiteReference makeSite(int programCounter) { return makeScriptSite(getMethod(), programCounter); }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, final PointerKey rhs) { newFieldOperation(opNode, objVn, fieldsVn, false, new NormalWriter(rhs)); }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, final InstanceKey[] rhsFixedValues) { newFieldOperation(opNode, objVn, fieldsVn, false, new ConstantWriter(rhsFixedValues)); }
@Override public PointerAnalysis<InstanceKey> makePointerAnalysis(PropagationCallGraphBuilder builder) { assert builder == CrossLanguageSSAPropagationCallGraphBuilder.this; return new CrossLanguagePointerAnalysisImpl(CrossLanguageSSAPropagationCallGraphBuilder.this, cg, pointsToMap, instanceKeys, pointerKeyFactory, instanceKeyFactory); } };
@Override protected void customInit() { for (CGNode root : callGraph) { markDiscovered(root); } }
protected void newFieldRead(CGNode opNode, int objVn, int fieldsVn, int lhsVn) { newFieldRead(opNode, objVn, fieldsVn, getBuilder().getPointerKeyForLocal(opNode, lhsVn)); }
@Override protected CGNode makeFakeRootNode() throws CancelException { return findOrCreateNode(new CrossLanguageFakeRoot(cha, options, getAnalysisCache()), Everywhere.EVERYWHERE); } }
@Override protected ExplicitCallGraph createEmptyCallGraph(IMethod fakeRootClass, AnalysisOptions options) { return new CrossLanguageCallGraph(makeRootNodeSelector(), fakeRootClass, options, getAnalysisCache()); }
public PointerKey getPointerKeyForObjectCatalog(InstanceKey I) { return ((AstPointerKeyFactory) getBuilder().getPointerKeyFactory()).getPointerKeyForObjectCatalog(I); }
public Iterator<PointerKey> getPointerKeysForReflectedFieldRead(InstanceKey I, InstanceKey F) { return ((AstPointerKeyFactory) getBuilder().getPointerKeyFactory()).getPointerKeysForReflectedFieldRead(I, F); }
public Iterator<PointerKey> getPointerKeysForReflectedFieldWrite(InstanceKey I, InstanceKey F) { return ((AstPointerKeyFactory) getBuilder().getPointerKeyFactory()).getPointerKeysForReflectedFieldWrite(I, F); }
@Override protected ExplicitCallGraph createEmptyCallGraph(IMethod fakeRootClass, AnalysisOptions options) { return new AstCallGraph(fakeRootClass, options, getAnalysisCache()); }
@Override public CallSiteReference makeSite(int programCounter) { return makeScriptSite(getMethod(), programCounter); }