Package javassist.bytecode
Class StackMapTable.Writer
java.lang.Object
javassist.bytecode.StackMapTable.Writer
- Enclosing class:
StackMapTable
A writer of stack map tables.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
appendFrame
(int offsetDelta, int[] tags, int[] data) Writes aappend_frame
.void
chopFrame
(int offsetDelta, int k) Writes achop_frame
.void
fullFrame
(int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData) Writes afull_frame
.void
sameFrame
(int offsetDelta) Writes asame_frame
or asame_frame_extended
.void
sameLocals
(int offsetDelta, int tag, int data) Writes asame_locals_1_stack_item
or asame_locals_1_stack_item_extended
.byte[]
Returns the stack map table written out.Constructs and a return a stack map table containing the written stack map entries.
-
Constructor Details
-
Writer
public Writer(int size) Constructs a writer.- Parameters:
size
- the initial buffer size.
-
-
Method Details
-
toByteArray
public byte[] toByteArray()Returns the stack map table written out. -
toStackMapTable
Constructs and a return a stack map table containing the written stack map entries.- Parameters:
cp
- the constant pool used to write the stack map entries.
-
sameFrame
public void sameFrame(int offsetDelta) Writes asame_frame
or asame_frame_extended
. -
sameLocals
public void sameLocals(int offsetDelta, int tag, int data) Writes asame_locals_1_stack_item
or asame_locals_1_stack_item_extended
.- Parameters:
tag
-stack[0].tag
.data
-stack[0].cpool_index
if the tag isOBJECT
, orstack[0].offset
if the tag isUNINIT
. Otherwise, this parameter is not used.
-
chopFrame
public void chopFrame(int offsetDelta, int k) Writes achop_frame
.- Parameters:
k
- the number of absent locals. 1, 2, or 3.
-
appendFrame
public void appendFrame(int offsetDelta, int[] tags, int[] data) Writes aappend_frame
. The number of the appended locals is specified by the length oftags
.- Parameters:
tags
-locals[].tag
. The length of this array must be either 1, 2, or 3.data
-locals[].cpool_index
if the tag isOBJECT
, orlocals[].offset
if the tag isUNINIT
. Otherwise, this parameter is not used.
-
fullFrame
public void fullFrame(int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData) Writes afull_frame
.number_of_locals
andnumber_of_stack_items
are specified by the the length oflocalTags
andstackTags
.- Parameters:
localTags
-locals[].tag
.localData
-locals[].cpool_index
if the tag isOBJECT
, orlocals[].offset
if the tag isUNINIT
. Otherwise, this parameter is not used.stackTags
-stack[].tag
.stackData
-stack[].cpool_index
if the tag isOBJECT
, orstack[].offset
if the tag isUNINIT
. Otherwise, this parameter is not used.
-