Package gnu.bytecode
Class Variable
- java.lang.Object
-
- gnu.bytecode.Location
-
- gnu.bytecode.Variable
-
- All Implemented Interfaces:
Enumeration
public class Variable extends Location implements Enumeration
Information about a local variable in a method's code.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
allocateLocal(CodeAttr code)
Allocate slots for a local variable (or parameter).boolean
dead()
void
freeLocal(CodeAttr code)
Scope
getScope()
boolean
hasMoreElements()
boolean
isAssigned()
Returns true iff assigned to a local variable slot.boolean
isParameter()
boolean
isSimple()
Returns true for a "simple" variable.Object
nextElement()
Variable
nextVar()
boolean
reserveLocal(int varIndex, CodeAttr code)
Assign a local variable to a given local variable slot.void
setParameter(boolean parameter)
void
setSimple(boolean simple)
String
toString()
-
Methods inherited from class gnu.bytecode.Location
getName, getSignature, getType, setName, setName, setSignature, setType
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Enumeration
asIterator
-
-
-
-
Method Detail
-
nextVar
public final Variable nextVar()
-
hasMoreElements
public final boolean hasMoreElements()
- Specified by:
hasMoreElements
in interfaceEnumeration
-
nextElement
public Object nextElement()
- Specified by:
nextElement
in interfaceEnumeration
-
isAssigned
public final boolean isAssigned()
Returns true iff assigned to a local variable slot. Only relevant if isSimple ().
-
getScope
public Scope getScope()
-
dead
public final boolean dead()
-
isSimple
public final boolean isSimple()
Returns true for a "simple" variable. A "simple" Variable can be stack-allocated using standard local variable slots. It is allocated by the codegen package. A non-simple variable may need heap allocation, or more more complex access; it is basically ignored by the codegen package, and must be managed by higher layers.
-
setSimple
public final void setSimple(boolean simple)
-
isParameter
public final boolean isParameter()
-
setParameter
public final void setParameter(boolean parameter)
-
reserveLocal
public boolean reserveLocal(int varIndex, CodeAttr code)
Assign a local variable to a given local variable slot.- Parameters:
varIndex
- the index of the local variables.- Returns:
- true iff we succeeded (i.e. the slot was unused)
-
allocateLocal
public void allocateLocal(CodeAttr code)
Allocate slots for a local variable (or parameter).
-
freeLocal
public void freeLocal(CodeAttr code)
-
-