Package gnu.bytecode

Class Variable

  • All Implemented Interfaces:
    java.util.Enumeration

    public class Variable
    extends Location
    implements java.util.Enumeration
    Information about a local variable in a method's code.
    • Field Detail

      • offset

        public int offset
        The local variable slot number used by this variable. Not used (by the codegen layer) if !isSimple().
    • Constructor Detail

      • Variable

        public Variable()
      • Variable

        public Variable​(java.lang.String name)
      • Variable

        public Variable​(java.lang.String name,
                        Type type)
    • Method Detail

      • nextVar

        public final Variable nextVar()
      • hasMoreElements

        public final boolean hasMoreElements()
        Specified by:
        hasMoreElements in interface java.util.Enumeration
      • nextElement

        public java.lang.Object nextElement()
        Specified by:
        nextElement in interface java.util.Enumeration
      • 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)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object