public void keepOnly(Set<IVarAbstraction> usefulPointers){
  Set<IVarAbstraction> reps=new HashSet<IVarAbstraction>();
  for (  IVarAbstraction pn : usefulPointers) {
    reps.add(pn.getRepresentative());
  }
  usefulPointers.addAll(reps);
  reps=null;
  for (  IVarAbstraction pn : pointers) {
    if (!usefulPointers.contains(pn))     pn.deleteAll();
  }
  System.gc();
}

public void keepOnly ( Set < IVarAbstraction > usefulPointers ) { Set < IVarAbstraction > reps = new HashSet < IVarAbstraction > ( ) ; for ( IVarAbstraction pn : usefulPointers ) { reps . add ( pn . getRepresentative ( ) ) ; } usefulPointers . addAll ( reps ) ; reps = null ; for ( IVarAbstraction pn : pointers ) { if ( ! usefulPointers . contains ( pn ) ) pn . deleteAll ( ) ; } System . gc ( ) ; }
keep only the pointers the users are interested in . just used for reducing memory occupation .
