public static class StackMapTable.Writer extends Object
| Constructor and Description |
|---|
Writer(int size)
Constructs a writer.
|
| Modifier and Type | Method and Description |
|---|---|
void |
appendFrame(int offsetDelta,
int[] tags,
int[] data)
Writes a
append_frame. |
void |
chopFrame(int offsetDelta,
int k)
Writes a
chop_frame. |
void |
fullFrame(int offsetDelta,
int[] localTags,
int[] localData,
int[] stackTags,
int[] stackData)
Writes a
full_frame. |
void |
sameFrame(int offsetDelta)
Writes a
same_frame or a same_frame_extended. |
void |
sameLocals(int offsetDelta,
int tag,
int data)
Writes a
same_locals_1_stack_item
or a same_locals_1_stack_item_extended. |
byte[] |
toByteArray()
Returns the stack map table written out.
|
StackMapTable |
toStackMapTable(ConstPool cp)
Constructs and a return a stack map table containing
the written stack map entries.
|
public Writer(int size)
size - the initial buffer size.public byte[] toByteArray()
public StackMapTable toStackMapTable(ConstPool cp)
cp - the constant pool used to write
the stack map entries.public void sameFrame(int offsetDelta)
same_frame or a same_frame_extended.public void sameLocals(int offsetDelta,
int tag,
int data)
same_locals_1_stack_item
or a same_locals_1_stack_item_extended.tag - stack[0].tag.data - stack[0].cpool_index
if the tag is OBJECT,
or stack[0].offset
if the tag is UNINIT.
Otherwise, this parameter is not used.public void chopFrame(int offsetDelta,
int k)
chop_frame.k - the number of absent locals. 1, 2, or 3.public void appendFrame(int offsetDelta,
int[] tags,
int[] data)
append_frame. The number of the appended
locals is specified by the length of tags.tags - locals[].tag.
The length of this array must be
either 1, 2, or 3.data - locals[].cpool_index
if the tag is OBJECT,
or locals[].offset
if the tag is UNINIT.
Otherwise, this parameter is not used.public void fullFrame(int offsetDelta,
int[] localTags,
int[] localData,
int[] stackTags,
int[] stackData)
full_frame.
number_of_locals and number_of_stack_items
are specified by the the length of localTags and
stackTags.localTags - locals[].tag.localData - locals[].cpool_index
if the tag is OBJECT,
or locals[].offset
if the tag is UNINIT.
Otherwise, this parameter is not used.stackTags - stack[].tag.stackData - stack[].cpool_index
if the tag is OBJECT,
or stack[].offset
if the tag is UNINIT.
Otherwise, this parameter is not used.Copyright © 2016 Shigeru Chiba, www.javassist.org. All Rights Reserved.