Package proguard.analysis.datastructure
Class CodeLocation
java.lang.Object
proguard.analysis.datastructure.Location
proguard.analysis.datastructure.CodeLocation
- All Implemented Interfaces:
Comparable<Location>
Represents a unique location in the bytecode. It comprises the
Clazz and Member
where it is contained, the offset therein and the corresponding line number in the source file
(Location.UNKNOWN_LINE if it is unknown). Consider the following pseudo-bytecode example
which contains code location comments:
public class Test
{
// class "Test", member "field", line 3, offset 0
public String field;
public String toString()
{
// class "Test", member "toString", line 6, offset 0
aload_0
// class "Test", member "toString", line 6, offset 1
getfield #1 <Test.field : Ljava/lang/String;>
// class "Test", member "toString", line 6, offset 4
areturn
}
}
- Inside methods: Like each location, instructions inside methods have a line number.
But as there may be several expressions on the same line, to correctly identify each
instruction we also need their bytecode offset. E.g. the
getfieldinstruction insidetoString()has the offset 1. - Fields: In this case
Test#field. A field location has a line number (3 in this example) but no offset, as this concept is only applicable to methods.
-
Field Summary
FieldsFields inherited from class proguard.analysis.datastructure.Location
line, UNKNOWN_LINE -
Constructor Summary
ConstructorsConstructorDescriptionCodeLocation(Clazz clazz, Member member, int offset) Create a code location with an unknown (Location.UNKNOWN_LINE) line number.CodeLocation(Clazz clazz, Member member, int offset, int line) -
Method Summary
-
Field Details
-
clazz
-
member
-
offset
public final int offset -
signature
-
-
Constructor Details
-
CodeLocation
Create a code location with an unknown (Location.UNKNOWN_LINE) line number. -
CodeLocation
-
-
Method Details
-
getExternalClassName
-
getMemberName
-
getName
Description copied from class:LocationReturns the name of the location, e.g., the signature of a CodeLocation, or the filename of a FileLocation -
toString
-
equals
-
hashCode
public int hashCode() -
compareTo
-