private void processFinalizeMethod(final IClass klass) { if (getBuilder().finalizeVisited.add(klass)) { IMethod finalizer = klass.getMethod(MethodReference.finalizeSelector); if (finalizer != null && ! finalizer.getDeclaringClass().getReference().equals(TypeReference.JavaLangObject)) { Entrypoint ef = new DefaultEntrypoint(finalizer, getClassHierarchy()) { @Override protected TypeReference[] makeParameterTypes(IMethod method, int i) { if (i == 0) { return new TypeReference[]{ klass.getReference() }; } else { return super.makeParameterTypes(method, i); } } }; ef.addCall((AbstractRootMethod)callGraph.getFakeRootNode().getMethod()); getBuilder().markChanged(callGraph.getFakeRootNode()); } } }
private void processFinalizeMethod(final IClass klass) { if (getBuilder().finalizeVisited.add(klass)) { IMethod finalizer = klass.getMethod(MethodReference.finalizeSelector); if (finalizer != null && ! finalizer.getDeclaringClass().getReference().equals(TypeReference.JavaLangObject)) { Entrypoint ef = new DefaultEntrypoint(finalizer, getClassHierarchy()) { @Override protected TypeReference[] makeParameterTypes(IMethod method, int i) { if (i == 0) { return new TypeReference[]{ klass.getReference() }; } else { return super.makeParameterTypes(method, i); } } }; ef.addCall((AbstractRootMethod)callGraph.getFakeRootNode().getMethod()); getBuilder().markChanged(callGraph.getFakeRootNode()); } } }
System.err.println("Entrypoint: " + E); SSAAbstractInvokeInstruction call = E.addCall((AbstractRootMethod) callGraph.getFakeRootNode().getMethod());
System.err.println("Entrypoint: " + E); SSAAbstractInvokeInstruction call = E.addCall((AbstractRootMethod) callGraph.getFakeRootNode().getMethod());
for (Entrypoint ep : eps) { CGNode nd = cg.findOrCreateNode(ep.getMethod(), Everywhere.EVERYWHERE); SSAAbstractInvokeInstruction invk = ep.addCall(fakeRootMethod); fakeRootNode.addTarget(invk.getCallSite(), nd);
for (Entrypoint ep : eps) { CGNode nd = cg.findOrCreateNode(ep.getMethod(), Everywhere.EVERYWHERE); SSAAbstractInvokeInstruction invk = ep.addCall(fakeRootMethod); fakeRootNode.addTarget(invk.getCallSite(), nd);