/* * @see com.ibm.wala.dataflow.IFDS.ISupergraph#isCall(java.lang.Object) */ public boolean isCall(Statement n) { switch (n.getKind()) { case EXC_RET_CALLEE: case EXC_RET_CALLER: case HEAP_PARAM_CALLEE: case NORMAL_RET_CALLEE: case NORMAL_RET_CALLER: case PARAM_CALLEE: case PHI: case HEAP_RET_CALLEE: case HEAP_RET_CALLER: case METHOD_ENTRY: case METHOD_EXIT: case CATCH: case PI: return false; case HEAP_PARAM_CALLER: case PARAM_CALLER: return true; case NORMAL: if (sdg.getCOptions().equals(ControlDependenceOptions.NONE)) { return false; } else { NormalStatement s = (NormalStatement) n; return s.getInstruction() instanceof SSAAbstractInvokeInstruction; } default: Assertions.UNREACHABLE(n.getKind() + " " + n.toString()); return false; } }
/* * @see com.ibm.wala.dataflow.IFDS.ISupergraph#getProcOf(java.lang.Object) */ public PDG getProcOf(Statement n) { CGNode node = n.getNode(); PDG result = sdg.getPDG(node); if (result == null) { Assertions.UNREACHABLE("panic: " + n + " " + node); } return result; }
/* * @see com.ibm.wala.util.graph.NumberedEdgeManager#getSuccNodeNumbers(java.lang.Object) */ public IntSet getSuccNodeNumbers(Statement node) { return sdg.getSuccNodeNumbers(node); }
public int getNumber(Statement N) { return sdg.getNumber(N); }
public Statement getNode(int number) { return sdg.getNode(number); }
public int getMaxNumber() { return sdg.getMaxNumber(); }
public boolean hasEdge(Statement src, Statement dst) { return sdg.hasEdge(src, dst); }
public Iterator<Statement> getSuccNodes(Statement N) { return sdg.getSuccNodes(N); }
public Iterator<Statement> iterator() { return sdg.iterator(); }
public boolean containsNode(Statement N) { return sdg.containsNode(N); }