public static class StackMapTable.Writer
extends java.lang.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.Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.