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
     
    (package private) int
     
    (package private) int
     
     
    (package private) byte[]
     
    (package private) int
     

    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

    Modifier and Type
    Method
    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
     
    void
    fullFrame(int pos, int offsetDelta, int[] localTags, int[] localData, int[] stackTags, int[] stackData)
    Invoked if the visited frame is full_frame.
    (package private) static byte[]
    insertGap(byte[] info, int where, int gap)
     
    void
    sameFrame(int pos, int offsetDelta)
    Invoked if the visited frame is a same_frame or a same_frame_extended.
    void
    sameLocals(int pos, int offsetDelta, int stackTag, int stackData)
    Invoked if the visited frame is a same_locals_1_stack_item_frame or a same_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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • stackMap

      private StackMapTable stackMap
    • where

      int where
    • gap

      int gap
    • position

      int position
    • updatedInfo

      byte[] updatedInfo
    • exclusive

      boolean exclusive
  • Constructor Details

    • Shifter

      public Shifter(StackMapTable smt, int where, int gap, boolean exclusive)
  • Method Details

    • 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 a same_frame or a same_frame_extended.
      Overrides:
      sameFrame in class StackMapTable.Walker
      Parameters:
      pos - the position of this frame in the info field of attribute_info structure.
      offsetDelta -
    • sameLocals

      public void sameLocals(int pos, int offsetDelta, int stackTag, int stackData)
      Description copied from class: StackMapTable.Walker
      Invoked if the visited frame is a same_locals_1_stack_item_frame or a same_locals_1_stack_item_frame_extended.
      Overrides:
      sameLocals in class StackMapTable.Walker
      Parameters:
      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.
    • 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 a chop_frame.
      Overrides:
      chopFrame in class StackMapTable.Walker
      Parameters:
      pos - the position.
      offsetDelta -
      k - the k 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 a append_frame.
      Overrides:
      appendFrame in class StackMapTable.Walker
      Parameters:
      pos - the position.
      offsetDelta -
      tags - locals[i].tag.
      data - locals[i].cpool_index or locals[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 is full_frame.
      Overrides:
      fullFrame in class StackMapTable.Walker
      Parameters:
      pos - the position.
      offsetDelta -
      localTags - locals[i].tag
      localData - locals[i].cpool_index or locals[i].offset
      stackTags - stack[i].tag
      stackData - stack[i].cpool_index or stack[i].offset
    • update

      void update(int pos, int offsetDelta)