change getPointerKeys() to return an Iterable, so we're not forced to construct a Collection (can cause a space blowup for a very large points-to relation)

git-svn-id: https://wala.svn.sourceforge.net/svnroot/wala/trunk@4224 f5eafffb-2e1d-0410-98e4-8ec43c5233c4
This commit is contained in:
msridhar1 2011-07-22 15:53:33 +00:00
parent af16c5d551
commit a6a8188244
2 changed files with 5 additions and 4 deletions

View File

@ -48,7 +48,8 @@ public interface PointerAnalysis {
/**
* @return all pointer keys known
*/
Collection<PointerKey> getPointerKeys();
Iterable<PointerKey> getPointerKeys();
/**
* @return all instance keys known

View File

@ -38,7 +38,7 @@ import com.ibm.wala.ssa.SSAThrowInstruction;
import com.ibm.wala.types.FieldReference;
import com.ibm.wala.types.TypeReference;
import com.ibm.wala.util.collections.HashSetFactory;
import com.ibm.wala.util.collections.Iterator2Collection;
import com.ibm.wala.util.collections.Iterator2Iterable;
import com.ibm.wala.util.debug.Assertions;
import com.ibm.wala.util.intset.IntSet;
import com.ibm.wala.util.intset.MutableMapping;
@ -538,8 +538,8 @@ public class PointerAnalysisImpl extends AbstractPointerAnalysis {
/*
* @see com.ibm.wala.ipa.callgraph.propagation.PointerAnalysis#iteratePointerKeys()
*/
public Collection<PointerKey> getPointerKeys() {
return Iterator2Collection.toSet(pointsToMap.iterateKeys());
public Iterable<PointerKey> getPointerKeys() {
return Iterator2Iterable.make(pointsToMap.iterateKeys());
}
public IClassHierarchy getClassHierarchy() {