|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectharpoon.Analysis.PointerAnalysis.InterProcPA
public abstract class InterProcPA
InterProcPA
is a "functional" class (i.e. it
contains just some methods, no persistent data) that wraps
the inter-procedural part of the pointer analysis. Normally, this should
be a part of the PointerAnalysis
, but that class is already
too big and some code segmentation is always good!
In the implementation of this class, most of the methods are static and
have PointerAnalysis pa
as their first argument. This stands
for the this
hidden argument that would exist if all
those methods were in the PointerAnalysis
class.
Field Summary | |
---|---|
static boolean |
DEBUG
Activates a lot of debug messages. |
static int |
MAX_CALLEES
Call sites with more than MAX_CALLEES callees are simply
considered to be holes. |
static boolean |
TRUST_EQUALS
Trust that a call to java.lang.Object.equals doesn't do anything interesting. |
static boolean |
TRUST_HASHCODE
Trust that a call to java.lang.Object.hashCode doesn't do anything interesting. |
static boolean |
TRUST_TOSTRING
Trust that a call to java.lang.Object.toString doesn't do anything interesting. |
static boolean |
VERY_NEW_MAPPINGS
|
static boolean |
WARNINGS
Displays some warnings, eg for the call sites with 0 callees. |
Constructor Summary | |
---|---|
InterProcPA()
|
Method Summary | |
---|---|
static harpoon.Analysis.PointerAnalysis.ParIntGraphPair |
analyze_call(PointerAnalysis pa,
MetaMethod current_mmethod,
CALL q,
ParIntGraph pig_before)
Analyzes the call site q inside
current_method . |
static Set |
getUnharmfulMethods()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int MAX_CALLEES
MAX_CALLEES
callees are simply
considered to be holes.
public static boolean DEBUG
public static final boolean WARNINGS
SecurityManager
,
each call to a method of that class has ZERO callees!
public static boolean TRUST_EQUALS
public static boolean TRUST_HASHCODE
public static boolean TRUST_TOSTRING
public static boolean VERY_NEW_MAPPINGS
Constructor Detail |
---|
public InterProcPA()
Method Detail |
---|
public static harpoon.Analysis.PointerAnalysis.ParIntGraphPair analyze_call(PointerAnalysis pa, MetaMethod current_mmethod, CALL q, ParIntGraph pig_before)
q
inside
current_method
. If analyzing the call is not possible
(e.g. one of the callees is native, hence unanalyzable), the call
site is skipped and all the parameters are marked as escaping
through that call site.
pa
- The PointerAnalysis
object that
calls this method. This parameter stands for the this
pointer that would exist if this method were in the
PointerAnalysis
class.current_method
- The method that contains in its
code the call site q
.q
- The analyzed call site.pig_before
- The parallel interaction graph at
the program point just before the call site; this graph will be
mutated, it is the responsability of the caller to clone it if it
is necessary somewhere else.
public static Set getUnharmfulMethods()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |