Class StackMapEntry
java.lang.Object
org.apache.bcel.classfile.StackMapEntry
This class represents a stack map entry recording the types of local variables and the of stack items at a given
byte code offset. See CLDC specification 5.3.1.2.
See also https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.4
union stack_map_frame {
same_frame;
same_locals_1_stack_item_frame;
same_locals_1_stack_item_frame_extended;
chop_frame;
same_frame_extended;
append_frame;
full_frame;
}
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionStackMapEntry(int byteCodeOffset, int numberOfLocals, StackMapType[] typesOfLocals, int numberOfStackItems, StackMapType[] typesOfStackItems, ConstantPool constantPool) Deprecated.StackMapEntry(int tag, int byteCodeOffset, StackMapType[] typesOfLocals, StackMapType[] typesOfStackItems, ConstantPool constantPool) Create an instance -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.copy()Creates a deep copy of this object.voiddump(DataOutputStream file) Dumps stack map entryintGets the byte code offset.Gets the constant pool.intGets the frame type.intGets the number of locals.intGets the number of stack items.Gets the types of locals.Gets the types of stack items.voidsetByteCodeOffset(int newOffset) Sets the byte code offset.voidsetConstantPool(ConstantPool constantPool) Sets the constant pool.voidsetFrameType(int ft) Sets the frame type.voidsetNumberOfLocals(int n) Deprecated.Since 6.0voidsetNumberOfStackItems(int n) Deprecated.Since 6.0voidsetTypesOfLocals(StackMapType[] types) Sets the types of locals.voidsetTypesOfStackItems(StackMapType[] types) Sets the types of stack items.toString()voidupdateByteCodeOffset(int delta) Updates the distance (as an offset delta) from this StackMap entry to the next.
-
Constructor Details
-
StackMapEntry
@Deprecated public StackMapEntry(int byteCodeOffset, int numberOfLocals, StackMapType[] typesOfLocals, int numberOfStackItems, StackMapType[] typesOfStackItems, ConstantPool constantPool) Deprecated.Since 6.0, useStackMapEntry(int, int, StackMapType[], StackMapType[], ConstantPool)instead.DO NOT USE- Parameters:
byteCodeOffset- byte code offset.numberOfLocals- NOT USED.typesOfLocals- array ofStackMapTypes of locals.numberOfStackItems- NOT USED.typesOfStackItems- array otStackMapTypes of stack items.constantPool- The constant pool.
-
StackMapEntry
public StackMapEntry(int tag, int byteCodeOffset, StackMapType[] typesOfLocals, StackMapType[] typesOfStackItems, ConstantPool constantPool) Create an instance- Parameters:
tag- The frameType to use.byteCodeOffset- byte code offset.typesOfLocals- array ofStackMapTypes of locals.typesOfStackItems- array otStackMapTypes of stack items.constantPool- The constant pool.
-
-
Method Details
-
accept
-
copy
-
dump
Dumps stack map entry- Parameters:
file- Output file stream.- Throws:
IOException- Thrown if an I/O error occurs.
-
getByteCodeOffset
-
getConstantPool
Gets the constant pool.- Returns:
- Constant pool used by this object.
-
getFrameType
-
getNumberOfLocals
-
getNumberOfStackItems
Gets the number of stack items.- Returns:
- The number of stack items.
-
getTypesOfLocals
-
getTypesOfStackItems
Gets the types of stack items.- Returns:
- The types of stack items.
-
setByteCodeOffset
Sets the byte code offset.- Parameters:
newOffset- The new offset.
-
setConstantPool
Sets the constant pool.- Parameters:
constantPool- Constant pool to be used for this object.
-
setFrameType
-
setNumberOfLocals
Deprecated.Since 6.0Sets the number of locals (deprecated).- Parameters:
n- The number of locals.
-
setNumberOfStackItems
Deprecated.Since 6.0Sets the number of stack items (deprecated).- Parameters:
n- The number of stack items.
-
setTypesOfLocals
Sets the types of locals.- Parameters:
types- The types of locals.
-
setTypesOfStackItems
Sets the types of stack items.- Parameters:
types- The types of stack items.
-
toString
-
updateByteCodeOffset
Updates the distance (as an offset delta) from this StackMap entry to the next. Note that this might cause the frame type to change. Note also that delta may be negative.- Parameters:
delta- offset delta.
-
StackMapEntry(int, int, StackMapType[], StackMapType[], ConstantPool)instead.