Class Frame

java.lang.Object
kilim.analysis.Frame

public class Frame extends Object
An activation frame.
  • Field Details

    • locals

      Value[] locals
    • stack

      Value[] stack
    • numMonitorsActive

      int numMonitorsActive
    • stacklen

      int stacklen
  • Constructor Details

    • Frame

      private Frame(int nLocals, int nStack, boolean init)
    • Frame

      public Frame(int nLocals, int nStack)
    • Frame

      private Frame(Value[] alocals, Value[] astack, int astacklen, int aNumMonitorsActive)
    • Frame

      public Frame(String classDesc, org.objectweb.asm.tree.MethodNode method)
  • Method Details

    • merge

      public Frame merge(Detector det, Frame inframe, boolean localsOnly, Usage usage)
      Merge the local variables and stack from the incoming frame into the current frame.
      Parameters:
      inframe - -- incoming frame
      localsOnly - -- true for exception handlers, because the stack is cleared.
      usage - -- Only those locals are merged that are deemed live (@see Usage#isLiveIn(int))
      Returns:
      this, if the merge didn't change anything or a new Frame if the operation changed a slot on the stack or a local variable
    • dupArray

      public static Value[] dupArray(Value[] a)
    • dup

      public Frame dup()
    • checkType

      private boolean checkType(String desc)
    • setLocal

      public int setLocal(int local, Value v)
    • getLocal

      public Value getLocal(int local, int opcode)
    • getLocal

      public Value getLocal(int local)
    • getStack

      public Value getStack(int pos)
    • push

      public Value push(Value v)
    • pop

      public Value pop()
    • popWord

      public Value popWord()
    • popn

      public void popn(int n)
    • clearStack

      void clearStack()
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getMaxLocals

      public int getMaxLocals()
    • getStackLen

      public int getStackLen()