1 19 20 package edu.umd.cs.findbugs.ba; 21 22 import java.util.Comparator ; 23 24 35 public class ReverseDFSOrder extends AbstractBlockOrder { 36 public ReverseDepthFirstSearch rdfs; 37 public DepthFirstSearch dfs; 38 private static class ReverseDFSComparator implements Comparator <BasicBlock> { 39 public ReverseDepthFirstSearch rdfs; 40 public DepthFirstSearch dfs; 41 public ReverseDFSComparator(ReverseDepthFirstSearch rdfs, DepthFirstSearch dfs) { 42 if (rdfs == null) throw new IllegalArgumentException (); 43 this.rdfs = rdfs; 44 if (dfs == null) throw new IllegalArgumentException (); 45 this.dfs = dfs; 46 } 47 public int compare(BasicBlock a, BasicBlock b) { 48 return dfs.getFinishTime(a) - dfs.getFinishTime(b); 49 } 50 } 51 52 59 public ReverseDFSOrder(CFG cfg, ReverseDepthFirstSearch rdfs, DepthFirstSearch dfs) { 60 super(cfg, new ReverseDFSComparator(rdfs, dfs)); 61 this.rdfs = rdfs; 62 this.dfs = dfs; 63 } 64 } 65 66 | Popular Tags |