gnu.bytecode
Class LocalVarsAttr

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

public class LocalVarsAttr
extends Attribute


Field Summary
 Scope current_scope
           
 
Constructor Summary
LocalVarsAttr(CodeAttr code)
          Add a new LocalVarsAttr to a CodeAttr.
LocalVarsAttr(Method method)
          Create, but don't link into method.code's attributes list (yet).
 
Method Summary
 VarEnumerator allVars()
           
 void assignConstants(ClassType cl)
          Add any needed constant pool entries for this Attribute.
 void enterScope(Scope scope)
           
 int getCount()
           
 int getLength()
          Return the length of the attribute in bytes.
 Method getMethod()
           
 boolean isEmpty()
           
 void preserveVariablesUpto(Scope scope)
          Mark scopes upto specified scope as 'preserved'.
 void print(ClassTypeWriter dst)
           
 void write(java.io.DataOutputStream dstr)
          Write out the contents of the Attribute.
 
Methods inherited from class gnu.bytecode.Attribute
addToFrontOf, assignConstants, count, get, getContainer, getLengthAll, getName, getNameIndex, getNext, isSkipped, setContainer, setName, setNameIndex, setNext, setSkipped, setSkipped, writeAll
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

current_scope

public Scope current_scope
Constructor Detail

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 Detail

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(java.io.DataOutputStream dstr)
           throws java.io.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:
java.io.IOException

print

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