Package soot
Class UnitPatchingChain
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- soot.PatchingChain<Unit>
-
- soot.UnitPatchingChain
-
- All Implemented Interfaces:
Serializable,Iterable<Unit>,Collection<Unit>,Chain<Unit>
- Direct Known Subclasses:
SPatchingChain
public class UnitPatchingChain extends PatchingChain<Unit>
Although the Patching Chain is meant to only work for units, it can also work with certain subclasses of units. However, for insertOnEdge and similar operations, new Jimple statements have to be generated. As such, it might be the case that aPatchingChain<X extends Unit>is not allowed to contain such new statements, since they are not a subclass of X. Therefore, we decided to create a chain specifically for units, where we can be certain that they are allowed to contain all kind of units. Feel free to go and grab a beer.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class soot.PatchingChain
PatchingChain.PatchingIterator
-
-
Field Summary
-
Fields inherited from class soot.PatchingChain
innerChain
-
-
Constructor Summary
Constructors Constructor Description UnitPatchingChain(Chain<Unit> aChain)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidinsertOnEdge(Collection<? extends Unit> toInsert, Unit point_src, Unit point_tgt)Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.voidinsertOnEdge(List<Unit> toInsert, Unit point_src, Unit point_tgt)Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.voidinsertOnEdge(Unit toInsert, Unit point_src, Unit point_tgt)Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.voidinsertOnEdge(Chain<Unit> toInsert, Unit point_src, Unit point_tgt)Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.-
Methods inherited from class soot.PatchingChain
add, addFirst, addLast, contains, follows, getElementsUnsorted, getFirst, getLast, getModificationCount, getNonPatchingChain, getPredOf, getSuccOf, insertAfter, insertAfter, insertAfter, insertAfter, insertBefore, insertBefore, insertBefore, insertBefore, insertBeforeNoRedirect, insertBeforeNoRedirect, iterator, iterator, iterator, patchBeforeRemoval, remove, removeFirst, removeLast, size, snapshotIterator, swapWith
-
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, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray, toArray
-
-
-
-
Method Detail
-
insertOnEdge
public void insertOnEdge(Collection<? extends Unit> toInsert, Unit point_src, Unit point_tgt)
Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.- Parameters:
toInsert- instrumentation to be added in the Chainpoint_src- the source point of an edge in CFGpoint_tgt- the target point of an edge
-
insertOnEdge
public void insertOnEdge(List<Unit> toInsert, Unit point_src, Unit point_tgt)
Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.- Parameters:
toInsert- instrumentation to be added in the Chainpoint_src- the source point of an edge in CFGpoint_tgt- the target point of an edge
-
insertOnEdge
public void insertOnEdge(Chain<Unit> toInsert, Unit point_src, Unit point_tgt)
Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.- Parameters:
toInsert- instrumentation to be added in the Chainpoint_src- the source point of an edge in CFGpoint_tgt- the target point of an edge
-
insertOnEdge
public void insertOnEdge(Unit toInsert, Unit point_src, Unit point_tgt)
Inserts instrumentation in a manner such that the resulting control flow graph (CFG) of the program will containtoInserton an edge that is defined bypoint_sourceandpoint_target.- Parameters:
toInsert- the instrumentation to be added in the Chainpoint_src- the source point of an edge in CFGpoint_tgt- the target point of an edge
-
-