DalvInsn instances being output. This class
receives and collects instructions in two pieces — a primary
list and a suffix (generally consisting of adjunct data referred to
by the primary list, such as switch case tables) — which it
merges and emits back out in the form of a DalvInsnList
instance.
| Modifier and Type | Field and Description |
|---|---|
| private final OutputFinisher | finisher
|
| private ArrayList | suffix
|
| Access | Constructor and Description |
|---|---|
| public | OutputCollector(DexOptions
non-null; options for dex output>= 0; initial capacity of the output list>= 0; initial capacity of the output
suffix>= 0; register count for the methodConstructs an instance. |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public void | |
| private void | |
| public OutputFinisher | Returns: non-null; the output finisherGets the results of all the calls on this instance, in the form of
an |
| public void | reverseBranch(int
how many instructions back to find the branch;
which, CodeAddress 0 is the most recently added instruction,
1 is the instruction before that, etc.non-null; the new target for the reversed branchReverses a branch which is buried a given number of instructions backward in the output. |
| finisher | back to summary |
|---|---|
| private final OutputFinisher finisher
| |
| suffix | back to summary |
|---|---|
| private ArrayList<DalvInsn> suffix
| |
| OutputCollector | back to summary |
|---|---|
| public OutputCollector(DexOptions dexOptions, int initialCapacity, int suffixInitialCapacity, int regCount) Constructs an instance.
| |
| add | back to summary |
|---|---|
| public void add(DalvInsn insn) Adds an instruction to the output.
| |
| addSuffix | back to summary |
|---|---|
| public void addSuffix(DalvInsn insn) Adds an instruction to the output suffix.
| |
| appendSuffixToOutput | back to summary |
|---|---|
| private void appendSuffixToOutput() Helper for | |
| getFinisher | back to summary |
|---|---|
| public OutputFinisher getFinisher() Gets the results of all the calls on this instance, in the form of
an
| |
| reverseBranch | back to summary |
|---|---|
| public void reverseBranch(int which, CodeAddress newTarget) Reverses a branch which is buried a given number of instructions backward in the output. It is illegal to call this unless the indicated instruction really is a reversible branch.
| |