|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.util.AbstractCollection<E>
soot.PatchingChain<Unit>
soot.shimple.internal.SPatchingChain
public class SPatchingChain
Internal Shimple extension of PatchingChain.
PatchingChain,
Serialized Form| Nested Class Summary | |
|---|---|
protected class |
SPatchingChain.SPatchingIterator
|
| Nested classes/interfaces inherited from class soot.PatchingChain |
|---|
PatchingChain.PatchingIterator |
| Field Summary | |
|---|---|
protected Map<SUnitBox,Boolean> |
boxToNeedsPatching
Flag that indicates whether control flow falls through from the box to the Phi node. |
protected Map<UnitBox,Unit> |
boxToPhiNode
Map from UnitBox to the Phi node owning it. |
| Fields inherited from class soot.PatchingChain |
|---|
innerChain |
| Constructor Summary | |
|---|---|
SPatchingChain(Body aBody,
Chain aChain)
|
|
| Method Summary | |
|---|---|
boolean |
add(Unit o)
Adds the given object to this Chain. |
void |
addFirst(Unit u)
Adds the given object at the beginning of the Chain. |
void |
addLast(Unit u)
Adds the given object at the end of the Chain. |
protected void |
computeNeedsPatching()
NOTE: This will *miss* all the Phi nodes outside a chain. |
protected SUnitBox |
getSBox(UnitBox box)
|
void |
insertAfter(List<Unit> toInsert,
Unit point)
Inserts toInsert in the Chain after point. |
void |
insertAfter(Unit toInsert,
Unit point)
Inserts toInsert in the Chain after point. |
void |
insertBefore(List<Unit> toInsert,
Unit point)
Inserts toInsert in the Chain before point. |
void |
insertBefore(Unit toInsert,
Unit point)
Inserts toInsert in the Chain before point. |
Iterator |
iterator()
Returns an iterator over this Chain. |
Iterator |
iterator(Unit u)
Returns an iterator over this Chain, starting at the given object. |
Iterator |
iterator(Unit head,
Unit tail)
Returns an iterator over this Chain, starting at head and reaching tail (inclusive). |
protected void |
processPhiNode(Unit o)
|
boolean |
remove(Unit obj)
|
protected void |
reprocessPhiNodes()
|
void |
swapWith(Unit out,
Unit in)
Replaces out in the Chain by in. |
| Methods inherited from class soot.PatchingChain |
|---|
contains, follows, getFirst, getLast, getNonPatchingChain, getPredOf, getSuccOf, insertAfter, insertBefore, insertBeforeNoRedirect, remove, removeFirst, removeLast, size, snapshotIterator |
| Methods inherited from class java.util.AbstractCollection |
|---|
addAll, clear, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.Collection |
|---|
addAll, clear, containsAll, equals, hashCode, isEmpty, removeAll, retainAll, toArray, toArray |
| Field Detail |
|---|
protected Map<UnitBox,Unit> boxToPhiNode
protected Map<SUnitBox,Boolean> boxToNeedsPatching
| Constructor Detail |
|---|
public SPatchingChain(Body aBody,
Chain aChain)
| Method Detail |
|---|
public boolean add(Unit o)
PatchingChain
add in interface Collection<Unit>add in class PatchingChain<Unit>
public void swapWith(Unit out,
Unit in)
PatchingChainout in the Chain by in.
swapWith in interface Chain<Unit>swapWith in class PatchingChain<Unit>
public void insertAfter(Unit toInsert,
Unit point)
PatchingChaintoInsert in the Chain after point.
insertAfter in interface Chain<Unit>insertAfter in class PatchingChain<Unit>
public void insertAfter(List<Unit> toInsert,
Unit point)
PatchingChaintoInsert in the Chain after point.
insertAfter in interface Chain<Unit>insertAfter in class PatchingChain<Unit>
public void insertBefore(List<Unit> toInsert,
Unit point)
PatchingChaintoInsert in the Chain before point.
insertBefore in interface Chain<Unit>insertBefore in class PatchingChain<Unit>
public void insertBefore(Unit toInsert,
Unit point)
PatchingChaintoInsert in the Chain before point.
insertBefore in interface Chain<Unit>insertBefore in class PatchingChain<Unit>public void addFirst(Unit u)
PatchingChain
addFirst in interface Chain<Unit>addFirst in class PatchingChain<Unit>public void addLast(Unit u)
PatchingChain
addLast in interface Chain<Unit>addLast in class PatchingChain<Unit>public boolean remove(Unit obj)
protected void processPhiNode(Unit o)
protected void reprocessPhiNodes()
protected void computeNeedsPatching()
protected SUnitBox getSBox(UnitBox box)
public Iterator iterator()
PatchingChain
iterator in interface Iterable<Unit>iterator in interface Collection<Unit>iterator in interface Chain<Unit>iterator in class PatchingChain<Unit>public Iterator iterator(Unit u)
PatchingChain
iterator in interface Chain<Unit>iterator in class PatchingChain<Unit>
public Iterator iterator(Unit head,
Unit tail)
PatchingChain
iterator in interface Chain<Unit>iterator in class PatchingChain<Unit>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||