public class TypeBasedHeapModel extends Object implements HeapModel
Constructor and Description |
---|
TypeBasedHeapModel(AnalysisOptions options,
Collection<IClass> klasses,
CallGraph cg) |
public TypeBasedHeapModel(AnalysisOptions options, Collection<IClass> klasses, CallGraph cg)
klasses
- CollectionIllegalArgumentException
- if cg is nullpublic Iterator<PointerKey> iteratePointerKeys()
iteratePointerKeys
in interface HeapModel
public IClassHierarchy getClassHierarchy()
getClassHierarchy
in interface HeapModel
public InstanceKey getInstanceKeyForAllocation(CGNode node, NewSiteReference allocation) throws UnimplementedError
getInstanceKeyForAllocation
in interface InstanceKeyFactory
UnimplementedError
public InstanceKey getInstanceKeyForMultiNewArray(CGNode node, NewSiteReference allocation, int dim) throws UnimplementedError
getInstanceKeyForMultiNewArray
in interface InstanceKeyFactory
UnimplementedError
public InstanceKey getInstanceKeyForConstant(TypeReference type, Object S)
getInstanceKeyForConstant
in interface InstanceKeyFactory
public String getStringConstantForInstanceKey(InstanceKey I) throws UnimplementedError
UnimplementedError
public InstanceKey getInstanceKeyForPEI(CGNode node, ProgramCounter instr, TypeReference type) throws UnimplementedError
getInstanceKeyForPEI
in interface InstanceKeyFactory
UnimplementedError
public InstanceKey getInstanceKeyForMetadataObject(Object obj, TypeReference objType) throws UnimplementedError
getInstanceKeyForMetadataObject
in interface InstanceKeyFactory
objType
- TODOUnimplementedError
public FilteredPointerKey getPointerKeyForLocal(CGNode node, int valueNumber)
FilteredPointerKey
, since the TypeBasedPointerAnalysis
relies on the type
filter to compute points to sets.getPointerKeyForLocal
in interface PointerKeyFactory
PointerKeyFactory.getPointerKeyForLocal(com.ibm.wala.ipa.callgraph.CGNode, int)
public FilteredPointerKey getFilteredPointerKeyForLocal(CGNode node, int valueNumber, FilteredPointerKey.TypeFilter filter) throws UnimplementedError
getFilteredPointerKeyForLocal
in interface PointerKeyFactory
UnimplementedError
public PointerKey getPointerKeyForReturnValue(CGNode node)
getPointerKeyForReturnValue
in interface PointerKeyFactory
public PointerKey getPointerKeyForExceptionalReturnValue(CGNode node)
getPointerKeyForExceptionalReturnValue
in interface PointerKeyFactory
public PointerKey getPointerKeyForStaticField(IField f)
getPointerKeyForStaticField
in interface PointerKeyFactory
public PointerKey getPointerKeyForInstanceField(InstanceKey I, IField field)
getPointerKeyForInstanceField
in interface PointerKeyFactory
public PointerKey getPointerKeyForArrayContents(InstanceKey I)
PointerKeyFactory
getPointerKeyForArrayContents
in interface PointerKeyFactory
I
- an InstanceKey representing an abstract arrayprotected ClassBasedInstanceKeys getIKeyFactory()