public class UnitPatchingChain extends PatchingChain<Unit>
PatchingChain<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.PatchingChain.PatchingIterator
innerChain
Constructor and Description |
---|
UnitPatchingChain(Chain<Unit> aChain) |
Modifier and Type | Method and Description |
---|---|
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 contain
toInsert on an edge that is defined by point_source and point_target . |
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 contain
toInsert on an edge that is defined by point_source and point_target . |
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 contain
toInsert on an edge that is defined by point_source and point_target . |
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 contain
toInsert on an edge that is defined by point_source and point_target . |
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
addAll, clear, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addAll, clear, containsAll, equals, hashCode, isEmpty, parallelStream, removeAll, removeIf, retainAll, spliterator, stream, toArray, toArray
public void insertOnEdge(Collection<? extends Unit> toInsert, Unit point_src, Unit point_tgt)
toInsert
on an edge that is defined by point_source
and point_target
.toInsert
- instrumentation to be added in the Chainpoint_src
- the source point of an edge in CFGpoint_tgt
- the target point of an edgepublic void insertOnEdge(List<Unit> toInsert, Unit point_src, Unit point_tgt)
toInsert
on an edge that is defined by point_source
and point_target
.toInsert
- instrumentation to be added in the Chainpoint_src
- the source point of an edge in CFGpoint_tgt
- the target point of an edgepublic void insertOnEdge(Chain<Unit> toInsert, Unit point_src, Unit point_tgt)
toInsert
on an edge that is defined by point_source
and point_target
.toInsert
- instrumentation to be added in the Chainpoint_src
- the source point of an edge in CFGpoint_tgt
- the target point of an edgepublic void insertOnEdge(Unit toInsert, Unit point_src, Unit point_tgt)
toInsert
on an edge that is defined by point_source
and point_target
.toInsert
- the instrumentation to be added in the Chainpoint_src
- the source point of an edge in CFGpoint_tgt
- the target point of an edgeCopyright © 2021 Soot OSS. All rights reserved.