Package com.android.dx.dex.code
Class SwitchData
java.lang.Object
com.android.dx.dex.code.DalvInsn
com.android.dx.dex.code.VariableSizeInsn
com.android.dx.dex.code.SwitchData
Pseudo-instruction which holds switch data. The switch data is
a map of values to target addresses, and this class writes the data
in either a "packed" or "sparse" form.
-
Constructor Summary
ConstructorDescriptionSwitchData
(SourcePosition position, CodeAddress user, IntList cases, CodeAddress[] targets) Constructs an instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected String
Gets the string form for any arguments to this instance.int
codeSize()
Gets the size of this instruction, in 16-bit code units.boolean
isPacked()
Returns whether or not this instance's data will be output as packed.protected String
listingString0
(boolean noteIndices) Helper forDalvInsn.listingString(java.lang.String, int, boolean)
, which returns the string form of this instance suitable for inclusion in a human-oriented listing dump, not including the instruction address and without respect for any output formatting.withRegisters
(RegisterSpecList registers) Returns an instance that is just like this one, except that the register list is replaced by the given one, and its address is reset.void
writeTo
(AnnotatedOutput out) Writes this instance to the given output.Methods inherited from class com.android.dx.dex.code.VariableSizeInsn
withOpcode, withRegisterOffset
Methods inherited from class com.android.dx.dex.code.DalvInsn
cstComment, cstString, expandedPrefix, expandedSuffix, expandedVersion, getAddress, getLowRegVersion, getMinimumRegisterRequirement, getNextAddress, getOpcode, getPosition, getRegisters, hasAddress, hasResult, identifierString, listingString, makeMove, setAddress, toString, withMapper
-
Constructor Details
-
SwitchData
Constructs an instance. The output address of this instance is initially unknown (-1
).- Parameters:
position
-non-null;
source positionuser
-non-null;
address representing the instruction that uses this instancecases
-non-null;
sorted list of switch cases (keys)targets
-non-null;
corresponding list of code addresses; the branch target for each case
-
-
Method Details
-
codeSize
public int codeSize()Gets the size of this instruction, in 16-bit code units. -
writeTo
Writes this instance to the given output. This method should never annotate the output. -
withRegisters
Returns an instance that is just like this one, except that the register list is replaced by the given one, and its address is reset.- Specified by:
withRegisters
in classDalvInsn
- Parameters:
registers
-non-null;
new register list- Returns:
non-null;
an appropriately-constructed instance
-
isPacked
public boolean isPacked()Returns whether or not this instance's data will be output as packed.- Returns:
true
iff the data is to be packed
-
argString
Gets the string form for any arguments to this instance. Subclasses must override this. -
listingString0
Helper forDalvInsn.listingString(java.lang.String, int, boolean)
, which returns the string form of this instance suitable for inclusion in a human-oriented listing dump, not including the instruction address and without respect for any output formatting. This method should returnnull
if this instance should not appear in a listing.- Specified by:
listingString0
in classDalvInsn
- Parameters:
noteIndices
- whether to include an explicit notation of constant pool indices- Returns:
null-ok;
the listing string
-