Top Description Fields Constructors Methods
org.droidparts.dexmaker.dx.dex.code

public final Class LocalEnd

extends ZeroSizeInsn
Class Inheritance
Imports
org.droidparts.dexmaker.dx.rop.code.RegisterSpec, .RegisterSpecList, .SourcePosition

Pseudo-instruction which is used to explicitly end the mapping of a register to a named local variable. That is, an instance of this class in an instruction stream indicates that starting with the subsequent instruction, the indicated variable is no longer valid.

Field Summary

Modifier and TypeField and Description
private final RegisterSpec
local

non-null; register spec representing the local variable ended by this instance

Note

Technically, only the register number needs to be recorded here as the rest of the information is implicit in the ambient local variable state, but other code will check the other info for consistency.

Constructor Summary

AccessConstructor and Description
public
LocalEnd(SourcePosition
non-null; source position
position
,
RegisterSpec
non-null; register spec representing the local variable introduced by this instance
local
)

Constructs an instance.

Method Summary

Modifier and TypeMethod and Description
protected String
argString()

Implements abstract org.droidparts.dexmaker.dx.dex.code.DalvInsn.argString.

Gets the string form for any arguments to this instance.
public RegisterSpec

Returns:

non-null; the register spec
getLocal
()

Gets the register spec representing the local variable ended by this instance.

protected String
listingString0(boolean
whether to include an explicit notation of constant pool indices
noteIndices
)

Implements abstract org.droidparts.dexmaker.dx.dex.code.DalvInsn.listingString0.

Helper for listingString, 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.
public DalvInsn
withRegisterOffset(int
the amount to offset register references by
delta
)

Overrides org.droidparts.dexmaker.dx.dex.code.ZeroSizeInsn.withRegisterOffset.

Returns an instance that is just like this one, except that all register references have been offset by the given delta, and its address is reset.
public DalvInsn
withRegisters(RegisterSpecList
non-null; new register list
registers
)

Implements abstract org.droidparts.dexmaker.dx.dex.code.DalvInsn.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.
Inherited from org.droidparts.dexmaker.dx.dex.code.ZeroSizeInsn:
codeSizewithOpcodewriteTo

Field Detail

localback to summary
private final RegisterSpec local

non-null; register spec representing the local variable ended by this instance

Note

Technically, only the register number needs to be recorded here as the rest of the information is implicit in the ambient local variable state, but other code will check the other info for consistency.

Constructor Detail

LocalEndback to summary
public LocalEnd(SourcePosition position, RegisterSpec local)

Constructs an instance. The output address of this instance is initially unknown (-1).

Parameters
position:SourcePosition

non-null; source position

local:RegisterSpec

non-null; register spec representing the local variable introduced by this instance

Method Detail

argStringback to summary
protected String argString()

Implements abstract org.droidparts.dexmaker.dx.dex.code.DalvInsn.argString.

Doc from org.droidparts.dexmaker.dx.dex.code.DalvInsn.argString.

Gets the string form for any arguments to this instance. Subclasses must override this.

Returns:String

null-ok; the string version of any arguments or null if there are none

Annotations
@Override
getLocalback to summary
public RegisterSpec getLocal()

Gets the register spec representing the local variable ended by this instance.

Returns:RegisterSpec

non-null; the register spec

listingString0back to summary
protected String listingString0(boolean noteIndices)

Implements abstract org.droidparts.dexmaker.dx.dex.code.DalvInsn.listingString0.

Doc from org.droidparts.dexmaker.dx.dex.code.DalvInsn.listingString0.

Helper for listingString, 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 return null if this instance should not appear in a listing.

Parameters
noteIndices:boolean

whether to include an explicit notation of constant pool indices

Returns:String

null-ok; the listing string

Annotations
@Override
withRegisterOffsetback to summary
public DalvInsn withRegisterOffset(int delta)

Overrides org.droidparts.dexmaker.dx.dex.code.ZeroSizeInsn.withRegisterOffset.

Doc from org.droidparts.dexmaker.dx.dex.code.ZeroSizeInsn.withRegisterOffset.

Returns an instance that is just like this one, except that all register references have been offset by the given delta, and its address is reset.

Parameters
delta:int

Doc from org.droidparts.dexmaker.dx.dex.code.DalvInsn.withRegisterOffset.

the amount to offset register references by

Returns:DalvInsn

Doc from org.droidparts.dexmaker.dx.dex.code.DalvInsn.withRegisterOffset.

non-null; an appropriately-constructed instance

Annotations
@Override
withRegistersback to summary
public DalvInsn withRegisters(RegisterSpecList registers)

Implements abstract org.droidparts.dexmaker.dx.dex.code.DalvInsn.withRegisters.

Doc from org.droidparts.dexmaker.dx.dex.code.DalvInsn.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.

Parameters
registers:RegisterSpecList

non-null; new register list

Returns:DalvInsn

non-null; an appropriately-constructed instance

Annotations
@Override