gnu.bytecode

Class 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(DataOutputStream dstr)
Write out the contents of the Attribute.

Methods inherited from class gnu.bytecode.Attribute

addToFrontOf, assignConstants, assignConstants, count, get, getContainer, getLength, getLengthAll, getName, getNameIndex, getNext, isSkipped, print, setContainer, setName, setNameIndex, setNext, setSkipped, setSkipped, write, writeAll

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

allVars

public VarEnumerator allVars()

assignConstants

public void assignConstants(ClassType cl)
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 interface Attribute

enterScope

public void enterScope(Scope scope)

getCount

public final int getCount()

getLength

public final int getLength()
Return the length of the attribute in bytes. Does not include the 6-byte header (for the name_index and the length).
Overrides:
getLength in interface Attribute

getMethod

public final Method getMethod()

isEmpty

public final boolean isEmpty()

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).

print

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

write

public void write(DataOutputStream dstr)
            throws java.io.IOException
Write out the contents of the Attribute. Does not write the 6-byte attribute header.
Overrides:
write in interface Attribute