|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object | +--envgen.analysis.stat.Monitor
Monitor implementation, used for SafeLock analysis.
| Field Summary | |
(package private) PointsToAnalysis |
alias
|
(package private) MultiSet |
enterLocks
|
(package private) soot.jimple.Stmt |
enterMonitor
|
(package private) soot.jimple.Stmt |
exitMonitor
|
(package private) boolean |
isImplicit
True if this is implicit monitor created by method's synchronized flag |
(package private) boolean |
safe
A monitor is safe, unless proven otherwise by the analysis |
(package private) java.util.HashMap |
sccMap
scc mapped to its safeness property |
| Constructor Summary | |
Monitor(soot.jimple.Stmt enterMonitor,
PointsToAnalysis alias)
|
|
Monitor(soot.jimple.Stmt enterMonitor,
PointsToAnalysis alias,
boolean isImplicit)
|
|
| Method Summary | |
void |
addSCC(soot.toolkits.graph.StronglyConnectedComponents scc)
assume scc safe unless a path without a wait is found |
boolean |
containsSCC(soot.toolkits.graph.StronglyConnectedComponents scc)
|
soot.jimple.Stmt |
getExitMonitor()
|
protected MultiSet |
getLocks(soot.Value lockRef,
soot.Unit stmt)
|
java.util.HashMap |
getSCCList()
|
boolean |
isImplicit()
|
boolean |
isSafe()
|
boolean |
isSafeSCC(soot.toolkits.graph.StronglyConnectedComponents scc)
|
protected boolean |
matchExitMonitor(soot.jimple.Stmt stmt)
|
protected boolean |
matchWait(soot.jimple.Stmt stmt)
|
protected boolean |
matchWait(soot.jimple.Stmt stmt,
soot.toolkits.graph.StronglyConnectedComponents scc)
|
void |
setExitMonitor(soot.jimple.Stmt exitMonitor)
|
void |
setImplicit(boolean implicit)
|
void |
setSafe(boolean safe)
|
void |
setSafeSCC(soot.toolkits.graph.StronglyConnectedComponents scc,
boolean safe)
|
void |
setSCCList(java.util.HashMap sccMap)
|
java.lang.String |
toString()
|
void |
updateWithCalledMonitors(MultiSet monitors)
Update Monitor with summary of called methods |
void |
updateWithInnerMonitor(Monitor inner)
Update monitor with safeness of an inner monitor |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
soot.jimple.Stmt enterMonitor
soot.jimple.Stmt exitMonitor
MultiSet enterLocks
java.util.HashMap sccMap
PointsToAnalysis alias
boolean isImplicit
boolean safe
| Constructor Detail |
public Monitor(soot.jimple.Stmt enterMonitor,
PointsToAnalysis alias)
public Monitor(soot.jimple.Stmt enterMonitor,
PointsToAnalysis alias,
boolean isImplicit)
| Method Detail |
public boolean isSafe()
public void setSafe(boolean safe)
public boolean isImplicit()
public void setImplicit(boolean implicit)
public java.util.HashMap getSCCList()
public void setSCCList(java.util.HashMap sccMap)
public boolean isSafeSCC(soot.toolkits.graph.StronglyConnectedComponents scc)
public void setSafeSCC(soot.toolkits.graph.StronglyConnectedComponents scc,
boolean safe)
public boolean containsSCC(soot.toolkits.graph.StronglyConnectedComponents scc)
public void setExitMonitor(soot.jimple.Stmt exitMonitor)
public soot.jimple.Stmt getExitMonitor()
protected boolean matchExitMonitor(soot.jimple.Stmt stmt)
protected boolean matchWait(soot.jimple.Stmt stmt)
protected boolean matchWait(soot.jimple.Stmt stmt,
soot.toolkits.graph.StronglyConnectedComponents scc)
public void updateWithInnerMonitor(Monitor inner)
public void updateWithCalledMonitors(MultiSet monitors)
public void addSCC(soot.toolkits.graph.StronglyConnectedComponents scc)
protected MultiSet getLocks(soot.Value lockRef,
soot.Unit stmt)
public java.lang.String toString()
toString in class java.lang.Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||