Package org.openjdk.asmtools.jasm
Class StackMapData
java.lang.Object
org.openjdk.asmtools.jasm.StackMapData
- All Implemented Interfaces:
DataWriter
4.7.4. The StackMapTable Attribute
StackMapTable_attribute { u2 attribute_name_index; u4 attribute_length; u2 number_of_entries; stack_map_frame entries[number_of_entries]; }
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classverification_type_info: Top_variable_info, Integer_variable_info, Float_variable_info, Null_variable_info, UninitializedThis_variable_info, Long_variable_info, Double_variable_info Common format: *_info { u1 tag = ITEM_*; // from 0 to 6 }static classverification_type_info: Object_variable_info, Uninitialized_variable_info Common Format: *_info { u1 tag = ITEM_*; // from 7 to 8 u2 cpool_index/offset; } -
Field Summary
FieldsModifier and TypeFieldDescription(package private) JasmEnvironmentprivate int(package private) boolean(package private) DataVector<? extends Indexer> private intprivate intprivate intprivate String(package private) DataVector<? extends Indexer> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint(package private) booleanisSet()Checks whether a method's Code attribute has a StackMapTable attribute.(package private) StackMapDatasetIsStackMapTable(boolean hasStackMapTable) In a class file whose version number is 50.0 or above, if a method's Code attribute does not have a StackMapTable attribute, it has an implicit stack map attribute (§4.10.1).(package private) StackMapDatasetOffset(StackMapData prevFrame) (package private) StackMapDatasetPC(int pc) (package private) StackMapDatasetScannerPosition(int scannerPosition) (package private) StackMapDatasetStackFrameType(String stackFrameType) void
-
Field Details
-
hasStackMapTable
boolean hasStackMapTable -
localsMap
DataVector<? extends Indexer> localsMap -
stackMap
DataVector<? extends Indexer> stackMap -
environment
JasmEnvironment environment -
pc
private int pc -
scannerPosition
private int scannerPosition -
offset
private int offset -
frameTypeTag
private int frameTypeTag -
stackFrameType
-
-
Constructor Details
-
StackMapData
StackMapData(JasmEnvironment environment)
-
-
Method Details
-
setOffset
-
setStackFrameType
-
setIsStackMapTable
In a class file whose version number is 50.0 or above, if a method's Code attribute does not have a StackMapTable attribute, it has an implicit stack map attribute (§4.10.1). This implicit stack map attribute is equivalent to a StackMapTable attribute with number_of_entries equal to zero.- Parameters:
hasStackMapTable- false if a method's Code attribute does not have a StackMapTable attribute
-
setPC
-
setScannerPosition
-
isSet
boolean isSet()Checks whether a method's Code attribute has a StackMapTable attribute.- Returns:
- true if a method's Code attribute has a StackMapTable attribute.
-
getLength
public int getLength()- Specified by:
getLengthin interfaceDataWriter
-
write
- Specified by:
writein interfaceDataWriter- Throws:
IOException
-