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) boolean
exclusive
(package private) int
gap
(package private) int
position
private StackMapTable
stackMap
(package private) byte[]
updatedInfo
(package private) int
where
-
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 void
appendFrame(int pos, int offsetDelta, int[] tags, int[] data)
Invoked if the visited frame is aappend_frame
.void
chopFrame(int pos, int offsetDelta, int k)
Invoked if the visited frame is achop_frame
.void
doit()
void
fullFrame(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)
void
sameFrame(int pos, int offsetDelta)
Invoked if the visited frame is asame_frame
or asame_frame_extended
.void
sameLocals(int pos, int offsetDelta, int stackTag, int stackData)
Invoked if the visited frame is asame_locals_1_stack_item_frame
or asame_locals_1_stack_item_frame_extended
.(package private) void
update(int pos, int offsetDelta)
(package private) void
update(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.Walker
Invoked if the visited frame is asame_frame
or asame_frame_extended
.- Overrides:
sameFrame
in classStackMapTable.Walker
- Parameters:
pos
- the position of this frame in theinfo
field ofattribute_info
structure.
-
sameLocals
public void sameLocals(int pos, int offsetDelta, int stackTag, int stackData)
Description copied from class:StackMapTable.Walker
Invoked if the visited frame is asame_locals_1_stack_item_frame
or asame_locals_1_stack_item_frame_extended
.- Overrides:
sameLocals
in classStackMapTable.Walker
- Parameters:
pos
- the position.stackTag
-stack[0].tag
.stackData
-stack[0].cpool_index
if the tag isOBJECT
, orstack[0].offset
if 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.Walker
Invoked if the visited frame is achop_frame
.- Overrides:
chopFrame
in classStackMapTable.Walker
- Parameters:
pos
- the position.k
- thek
last locals are absent.
-
appendFrame
public void appendFrame(int pos, int offsetDelta, int[] tags, int[] data)
Description copied from class:StackMapTable.Walker
Invoked if the visited frame is aappend_frame
.- Overrides:
appendFrame
in classStackMapTable.Walker
- Parameters:
pos
- the position.tags
-locals[i].tag
.data
-locals[i].cpool_index
orlocals[i].offset
.
-
fullFrame
public void fullFrame(int pos, int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData)
Description copied from class:StackMapTable.Walker
Invoked if the visited frame isfull_frame
.- Overrides:
fullFrame
in classStackMapTable.Walker
- Parameters:
pos
- the position.localTags
-locals[i].tag
localData
-locals[i].cpool_index
orlocals[i].offset
stackTags
-stack[i].tag
stackData
-stack[i].cpool_index
orstack[i].offset
-
update
void update(int pos, int offsetDelta)
-
-