Package javassist.bytecode
Class StackMapTable.Shifter
- java.lang.Object
-
- javassist.bytecode.StackMapTable.Walker
-
- javassist.bytecode.StackMapTable.Shifter
-
- Direct Known Subclasses:
StackMapTable.SwitchShifter
- Enclosing class:
- StackMapTable
static class StackMapTable.Shifter extends StackMapTable.Walker
-
-
Field Summary
Fields Modifier and Type Field Description (package private) booleanexclusive(package private) intgap(package private) intpositionprivate StackMapTablestackMap(package private) byte[]updatedInfo(package private) intwhere-
Fields inherited from class javassist.bytecode.StackMapTable.Walker
info, numOfEntries
-
-
Constructor Summary
Constructors Constructor Description Shifter(StackMapTable smt, int where, int gap, boolean exclusive)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidappendFrame(int pos, int offsetDelta, int[] tags, int[] data)Invoked if the visited frame is aappend_frame.voidchopFrame(int pos, int offsetDelta, int k)Invoked if the visited frame is achop_frame.voiddoit()voidfullFrame(int pos, int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData)Invoked if the visited frame isfull_frame.(package private) static byte[]insertGap(byte[] info, int where, int gap)voidsameFrame(int pos, int offsetDelta)Invoked if the visited frame is asame_frameor asame_frame_extended.voidsameLocals(int pos, int offsetDelta, int stackTag, int stackData)Invoked if the visited frame is asame_locals_1_stack_item_frameor asame_locals_1_stack_item_frame_extended.(package private) voidupdate(int pos, int offsetDelta)(package private) voidupdate(int pos, int offsetDelta, int base, int entry)-
Methods inherited from class javassist.bytecode.StackMapTable.Walker
objectOrUninitialized, parse, size, stackMapFrames
-
-
-
-
Field Detail
-
stackMap
private StackMapTable stackMap
-
where
int where
-
gap
int gap
-
position
int position
-
updatedInfo
byte[] updatedInfo
-
exclusive
boolean exclusive
-
-
Constructor Detail
-
Shifter
public Shifter(StackMapTable smt, int where, int gap, boolean exclusive)
-
-
Method Detail
-
doit
public void doit() throws BadBytecode- Throws:
BadBytecode
-
sameFrame
public void sameFrame(int pos, int offsetDelta)Description copied from class:StackMapTable.WalkerInvoked if the visited frame is asame_frameor asame_frame_extended.- Overrides:
sameFramein classStackMapTable.Walker- Parameters:
pos- the position of this frame in theinfofield ofattribute_infostructure.
-
sameLocals
public void sameLocals(int pos, int offsetDelta, int stackTag, int stackData)Description copied from class:StackMapTable.WalkerInvoked if the visited frame is asame_locals_1_stack_item_frameor asame_locals_1_stack_item_frame_extended.- Overrides:
sameLocalsin classStackMapTable.Walker- Parameters:
pos- the position.stackTag-stack[0].tag.stackData-stack[0].cpool_indexif the tag isOBJECT, orstack[0].offsetif the tag isUNINIT.
-
update
void update(int pos, int offsetDelta, int base, int entry)
-
insertGap
static byte[] insertGap(byte[] info, int where, int gap)
-
chopFrame
public void chopFrame(int pos, int offsetDelta, int k)Description copied from class:StackMapTable.WalkerInvoked if the visited frame is achop_frame.- Overrides:
chopFramein classStackMapTable.Walker- Parameters:
pos- the position.k- theklast locals are absent.
-
appendFrame
public void appendFrame(int pos, int offsetDelta, int[] tags, int[] data)Description copied from class:StackMapTable.WalkerInvoked if the visited frame is aappend_frame.- Overrides:
appendFramein classStackMapTable.Walker- Parameters:
pos- the position.tags-locals[i].tag.data-locals[i].cpool_indexorlocals[i].offset.
-
fullFrame
public void fullFrame(int pos, int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData)Description copied from class:StackMapTable.WalkerInvoked if the visited frame isfull_frame.- Overrides:
fullFramein classStackMapTable.Walker- Parameters:
pos- the position.localTags-locals[i].taglocalData-locals[i].cpool_indexorlocals[i].offsetstackTags-stack[i].tagstackData-stack[i].cpool_indexorstack[i].offset
-
update
void update(int pos, int offsetDelta)
-
-