private boolean shouldSkipChildren(CCFGNode node,Set<CCFGEdge> handledBackEdges,Set<CCFGNode> children,boolean handleLoops){
  if (node == null || children == null)   return true;
  boolean skipChildren=false;
  if (handleLoops) {
    for (    CCFGNode child : children) {
      CCFGEdge currentEdge=ccfg.getEdge(node,child);
      if (handledBackEdges.contains(currentEdge)) {
        skipChildren=true;
        break;
      }
    }
  }
  return skipChildren;
}

private boolean shouldSkipChildren ( CCFGNode node , Set < CCFGEdge > handledBackEdges , Set < CCFGNode > children , boolean handleLoops ) { if ( node == null || children == null ) return true ; boolean skipChildren = false ; if ( handleLoops ) { for ( CCFGNode child : children ) { CCFGEdge currentEdge = ccfg . getEdge ( node , child ) ; if ( handledBackEdges . contains ( currentEdge ) ) { skipChildren = true ; break ; } } } return skipChildren ; }
when we go back to previously visited nodes we do not have to visit nodes after our current node again . if we follow backedges we do that so we find all intra - method pairs within loops , so we go through loops twice so to speak . however the possible activedefs are already determined after the first walk through the loop . so after we make our two runs through the loop we don ' t have to walk through everything after the loop again
