Package gnu.bytecode
Class LocalVarsAttr
- java.lang.Object
-
- gnu.bytecode.Attribute
-
- gnu.bytecode.LocalVarsAttr
-
public class LocalVarsAttr extends Attribute
-
-
Field Summary
Fields Modifier and Type Field Description Scope
current_scope
-
Constructor Summary
Constructors Constructor Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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, count, get, getConstants, getContainer, getLengthAll, getName, getNameIndex, getNext, isSkipped, setContainer, setName, setNameIndex, setNext, setSkipped, setSkipped, writeAll
-
-
-
-
Field Detail
-
current_scope
public Scope current_scope
-
-
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).
-
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 classAttribute
-
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 classAttribute
- Throws:
IOException
-
print
public void print(ClassTypeWriter dst)
-
-