Package gnu.bytecode

Class LocalVarsAttr

java.lang.Object
gnu.bytecode.Attribute
gnu.bytecode.LocalVarsAttr

public class LocalVarsAttr extends Attribute
  • Field Details

    • current_scope

      public Scope current_scope
  • Constructor Details

    • LocalVarsAttr

      public LocalVarsAttr(CodeAttr code)
      Add a new LocalVarsAttr to a CodeAttr.
    • LocalVarsAttr

      public LocalVarsAttr(Method method)
      Create, but don't link into method.code's attributes list (yet).
  • Method Details

    • getMethod

      public final Method getMethod()
    • allVars

      public VarEnumerator allVars()
    • enterScope

      public void enterScope(Scope scope)
    • preserveVariablesUpto

      public void preserveVariablesUpto(Scope scope)
      Mark scopes upto specified scope as 'preserved'. This means that the local variable slots are not available for reuse when the scope exits. The effected scopes are all ancestor scopes from the current scope (inclusive) upto the specified scope (exclusive).
    • isEmpty

      public final boolean isEmpty()
    • getCount

      public final int getCount()
    • getLength

      public final int getLength()
      Description copied from class: Attribute
      Return the length of the attribute in bytes. Does not include the 6-byte header (for the name_index and the length).
      Specified by:
      getLength in class Attribute
    • assignConstants

      public void assignConstants(ClassType cl)
      Description copied from class: Attribute
      Add any needed constant pool entries for this Attribute. Overridden by sub-classes. Do any other cleanup needed before writing out a .class file.
      Overrides:
      assignConstants in class Attribute
    • write

      public void write(DataOutputStream dstr) throws IOException
      Description copied from class: Attribute
      Write out the contents of the Attribute. Does not write the 6-byte attribute header.
      Specified by:
      write in class Attribute
      Throws:
      IOException
    • print

      public void print(ClassTypeWriter dst)
      Overrides:
      print in class Attribute