public static class StackMapTable.Walker extends Object
| Constructor and Description | 
|---|
| Walker(byte[] data)Constructs a walker. | 
| Walker(StackMapTable smt)Constructs a walker. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | appendFrame(int pos,
           int offsetDelta,
           int[] tags,
           int[] data)Invoked if the visited frame is a  append_frame. | 
| void | chopFrame(int pos,
         int offsetDelta,
         int k)Invoked if the visited frame is a  chop_frame. | 
| void | fullFrame(int pos,
         int offsetDelta,
         int[] localTags,
         int[] localData,
         int[] stackTags,
         int[] stackData)Invoked if the visited frame is  full_frame. | 
| void | objectOrUninitialized(int tag,
                     int data,
                     int pos)Invoked if  Object_variable_infoorUninitialized_variable_infois visited. | 
| void | parse()Visits each entry of the stack map frames. | 
| void | sameFrame(int pos,
         int offsetDelta)Invoked if the visited frame is a  same_frameor
 asame_frame_extended. | 
| void | sameLocals(int pos,
          int offsetDelta,
          int stackTag,
          int stackData)Invoked if the visited frame is a  same_locals_1_stack_item_frameor asame_locals_1_stack_item_frame_extended. | 
| int | size()Returns the number of the entries. | 
public Walker(StackMapTable smt)
smt - the StackMapTable that this walker
                  walks around.public Walker(byte[] data)
data - the info field of the
                  attribute_info structure.
                  It can be obtained by get()
                  in the AttributeInfo class.public final int size()
public void parse()
           throws BadBytecode
BadBytecodepublic void sameFrame(int pos,
                      int offsetDelta)
               throws BadBytecode
same_frame or
 a same_frame_extended.pos - the position of this frame in the info
                  field of attribute_info structure.offsetDelta - BadBytecodepublic void sameLocals(int pos,
                       int offsetDelta,
                       int stackTag,
                       int stackData)
                throws BadBytecode
same_locals_1_stack_item_frame
 or a same_locals_1_stack_item_frame_extended.pos - the position.offsetDelta - stackTag - stack[0].tag.stackData - stack[0].cpool_index
                          if the tag is OBJECT,
                          or stack[0].offset
                          if the tag is UNINIT.BadBytecodepublic void chopFrame(int pos,
                      int offsetDelta,
                      int k)
               throws BadBytecode
chop_frame.pos - the position.offsetDelta - k - the k last locals are absent.BadBytecodepublic void appendFrame(int pos,
                        int offsetDelta,
                        int[] tags,
                        int[] data)
                 throws BadBytecode
append_frame.pos - the position.offsetDelta - tags - locals[i].tag.data - locals[i].cpool_index
                      or locals[i].offset.BadBytecodepublic void fullFrame(int pos,
                      int offsetDelta,
                      int[] localTags,
                      int[] localData,
                      int[] stackTags,
                      int[] stackData)
               throws BadBytecode
full_frame.pos - the position.offsetDelta - localTags - locals[i].taglocalData - locals[i].cpool_index
                          or locals[i].offsetstackTags - stack[i].tagstackData - stack[i].cpool_index
                          or stack[i].offsetBadBytecodepublic void objectOrUninitialized(int tag,
                                  int data,
                                  int pos)
Object_variable_info
 or Uninitialized_variable_info is visited.tag - OBJECT or UNINIT.data - the value of cpool_index or offset.pos - the position of cpool_index or offset.Copyright © 2016 Shigeru Chiba, www.javassist.org. All Rights Reserved.