harpoon.Analysis.PA2
Class PAUtil
java.lang.Object
harpoon.Analysis.PA2.PAUtil
public abstract class PAUtil
- extends Object
PAUtil
- Version:
- $Id: PAUtil.java,v 1.13 2005/12/01 07:54:07 salcianu Exp $
- Author:
- Alexandru Salcianu <salcianu@alum.mit.edu>
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PAUtil
public PAUtil()
isNative
public static boolean isNative(HMethod hm)
isAbstract
public static boolean isAbstract(HMethod hm)
trivialEscape
public static boolean trivialEscape(PANode node)
escapeAny
public static boolean escapeAny(Collection<PANode> S,
Collection<PANode> F)
escape
public static boolean escape(PANode n,
Collection<PANode> F)
getParamTypes
public static List<HClass> getParamTypes(HMethod hm)
getObjParamTypes
public static List<HClass> getObjParamTypes(HMethod hm)
- Returns a list of the types of the object (=non-primitive)
parameters of method
hm
. This lists include the
type of the receiver (for non-static methods) and respects the
order in which params are declared.
isException
public static boolean isException(HClass hClass)
interestingMethods
public static Set<HMethod> interestingMethods(Collection<HMethod> roots,
CallGraph cg,
jpaul.Misc.Predicate<HMethod> undesirable)
- Returns all methods that are transitively reachable from
roots
, along call paths that do not include any
"undesirable" methods. The returned set does not contain any
undesirable method.
methodTooBig
public static boolean methodTooBig(HMethod hm)
- Detects certain pathological methods whose analysis takes a
long time without producing something really useful. This is
a simple method that just looks for some usual suspects.
timePointerAnalysis
public static void timePointerAnalysis(HMethod mainM,
Collection<HMethod> methodsOfInterest,
PointerAnalysis pa,
AnalysisPolicy ap,
String prefix)