@Override public PointerKey getPointerKeyForArrayContents(InstanceKey I) { if (isBogusKey(I)) { return null; } else { return super.getPointerKeyForArrayContents(I); } }
@Override public PointerKey getPointerKeyForInstanceField(InstanceKey I, IField f) { if (isBogusKey(I)) { return null; } else { return super.getPointerKeyForInstanceField(I, f); } }
@Override public PointerKey getPointerKeyForObjectCatalog(InstanceKey I) { if (isBogusKey(I)) { return null; } else { return super.getPointerKeyForObjectCatalog(I); } }
@Override public Iterator<PointerKey> getPointerKeysForReflectedFieldWrite(InstanceKey I, InstanceKey F) { if (isBogusKey(I)) { return EmptyIterator.instance(); } else { return super.getPointerKeysForReflectedFieldWrite(I, F); } }
@Override public Iterator<PointerKey> getPointerKeysForReflectedFieldRead(InstanceKey I, InstanceKey F) { if (isBogusKey(I)) { return EmptyIterator.instance(); } else { return super.getPointerKeysForReflectedFieldRead(I, F); } }
public JavaJavaScriptHybridCallGraphBuilder(IMethod fakeRootClass, AnalysisOptions options, IAnalysisCacheView cache) { super(fakeRootClass, options, cache, new AstCFAPointerKeys()); globalObject = new GlobalObjectKey(cha.lookupClass(JavaScriptTypes.Root)); SSAContextInterpreter contextInterpreter = makeDefaultContextInterpreters(null, options, cha); setContextInterpreter( contextInterpreter ); ContextSelector def = new DefaultContextSelector(options, cha); Map<Atom,ContextSelector> languageSelectors = HashMapFactory.make(); languageSelectors.put(JavaScriptTypes.jsName, new JavaScriptFunctionApplyContextSelector(new JavaScriptConstructorContextSelector(def))); languageSelectors.put(Language.JAVA.getName(), def); setContextSelector(new CrossLanguageContextSelector(languageSelectors)); Map<Atom,InstanceKeyFactory> instanceKeys = HashMapFactory.make(); instanceKeys.put( JavaScriptTypes.jsName, new JavaScriptScopeMappingInstanceKeys(cha, this, new JavaScriptConstructorInstanceKeys(new ZeroXInstanceKeys( options, cha, contextInterpreter, ZeroXInstanceKeys.ALLOCATIONS)))); instanceKeys.put( Language.JAVA.getName(), new ZeroXInstanceKeys(options, cha, contextInterpreter, ZeroXInstanceKeys.NONE)); setInstanceKeys(new CrossLanguageInstanceKeys(instanceKeys)); }
@Override public Iterator<PointerKey> getPointerKeysForReflectedFieldWrite(InstanceKey I, InstanceKey F) { if (isBogusKey(I)) { return EmptyIterator.instance(); } else { return super.getPointerKeysForReflectedFieldWrite(I, F); } }
@Override public Iterator<PointerKey> getPointerKeysForReflectedFieldRead(InstanceKey I, InstanceKey F) { if (isBogusKey(I)) { return EmptyIterator.instance(); } else { return super.getPointerKeysForReflectedFieldRead(I, F); } }
@Override public PointerKey getPointerKeyForInstanceField(InstanceKey I, IField f) { if (isBogusKey(I)) { return null; } else { return super.getPointerKeyForInstanceField(I, f); } }
@Override public PointerKey getPointerKeyForObjectCatalog(InstanceKey I) { if (isBogusKey(I)) { return null; } else { return super.getPointerKeyForObjectCatalog(I); } }
@Override public PointerKey getPointerKeyForArrayContents(InstanceKey I) { if (isBogusKey(I)) { return null; } else { return super.getPointerKeyForArrayContents(I); } }