Package proguard.classfile.attribute
Class StructuredLineNumberInfo
java.lang.Object
proguard.classfile.attribute.LineNumberInfo
proguard.classfile.attribute.StructuredLineNumberInfo
Line number info with extra information for lines that came from a different source than the
current method (e.g. inlined from a different method). Tracking this information is necessary for
printing a correct mapping file.
The structured line number info contains:
- Source string indicating the originating class/method of the line.
- Optional start/end line number indicating the original line numbers for a block of inlined instructions.
- A list of origins, indicating the transformations these lines underwent, e.g. multiple levels of inlining
- A block ID, that identifies a group of lines that belongs to a singular block.
Since these transformations operate on blocks of lines, and the mapping file identifies blocks
rather than singular lines, StructuredLineNumberInfo objects are generated through a
StructuredLineNumberInfo.Block object, which is a factory object that generates
StructuredLineNumberInfos with consistent block IDs.
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class proguard.classfile.attribute.LineNumberInfo
LINE_RANGE_NO_SOURCE, SIMPLE_LINE_NUMBER_BLOCK_ID, u2lineNumber, u2startPC -
Method Summary
Modifier and TypeMethodDescriptiongetBlock()getBlock(LineOrigin... addedOrigins) intGet the block ID which identifies related line numbers which form a single block in the mapping file.Get a chronological list of manipulations that this line went through.Returns a description of the source of the line, if known, or null otherwise.intint
-
Method Details
-
getSourceMethod
- Overrides:
getSourceMethodin classLineNumberInfo
-
getSourceLineStart
public int getSourceLineStart()- Overrides:
getSourceLineStartin classLineNumberInfo
-
getSourceLineEnd
public int getSourceLineEnd()- Overrides:
getSourceLineEndin classLineNumberInfo
-
getBlockId
public int getBlockId()Get the block ID which identifies related line numbers which form a single block in the mapping file.- Overrides:
getBlockIdin classLineNumberInfo
-
getOrigin
Get a chronological list of manipulations that this line went through. True origin is the first element, followed by any subsequent manipulations (e.g. multiple levels of inlining, copying, etc.).- Overrides:
getOriginin classLineNumberInfo
-
getSource
Description copied from class:LineNumberInfoReturns a description of the source of the line, if known, or null otherwise. Standard line number entries don't contain information about their source; it is assumed to be the same source file.- Overrides:
getSourcein classLineNumberInfo
-
getBlock
- Overrides:
getBlockin classLineNumberInfo
-
getBlock
-