public ClinitElimAnalysis(UnitGraph g) { super(g); this.g = g; doAnalysis(); }
protected void internalTransform(Body b, String phaseName, Map options) { ClinitElimAnalysis a = new ClinitElimAnalysis(new BriefUnitGraph(b)); CallGraph cg = Scene.v().getCallGraph(); SootMethod m = b.getMethod(); Iterator edgeIt = cg.edgesOutOf(m); while (edgeIt.hasNext()) { Edge e = (Edge) edgeIt.next(); if (e.srcStmt() == null) { continue; } if (!e.isClinit()) { continue; } FlowSet methods = (FlowSet) a.getFlowBefore(e.srcStmt()); if (methods.contains(e.tgt())) { cg.removeEdge(e); } } } }
protected void internalTransform(Body b, String phaseName, Map options){ ClinitElimAnalysis a = new ClinitElimAnalysis( new BriefUnitGraph(b)); CallGraph cg = Scene.v().getCallGraph(); SootMethod m = b.getMethod(); Iterator edgeIt = cg.edgesOutOf(m); while (edgeIt.hasNext()){ Edge e = (Edge)edgeIt.next(); if (e.srcStmt() == null) continue; if (!e.isClinit()) continue; FlowSet methods = (FlowSet) a.getFlowBefore(e.srcStmt()); if (methods.contains(e.tgt())){ cg.removeEdge(e); } } } }
protected void internalTransform(Body b, String phaseName, Map options){ ClinitElimAnalysis a = new ClinitElimAnalysis( new BriefUnitGraph(b)); CallGraph cg = Scene.v().getCallGraph(); SootMethod m = b.getMethod(); Iterator edgeIt = cg.edgesOutOf(m); while (edgeIt.hasNext()){ Edge e = (Edge)edgeIt.next(); if (e.srcStmt() == null) continue; if (!e.isClinit()) continue; FlowSet methods = (FlowSet) a.getFlowBefore(e.srcStmt()); if (methods.contains(e.tgt())){ cg.removeEdge(e); } } } }
public ClinitElimAnalysis(UnitGraph g) { super(g); this.g = g; doAnalysis(); }
public ClinitElimAnalysis(UnitGraph g) { super(g); this.g = g; doAnalysis(); }