Class SourceValue

java.lang.Object
org.objectweb.asm.tree.analysis.SourceValue
All Implemented Interfaces:
Value

public class SourceValue extends Object implements Value
A Value which keeps track of the bytecode instructions that can produce it.
Author:
Eric Bruneton
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final Set<org.objectweb.asm.tree.AbstractInsnNode>
    The instructions that can produce this value.
    final int
    The size of this value, in 32 bits words.
  • Constructor Summary

    Constructors
    Constructor
    Description
    SourceValue(int size)
    Constructs a new SourceValue.
    SourceValue(int size, Set<org.objectweb.asm.tree.AbstractInsnNode> insnSet)
    Constructs a new SourceValue.
    SourceValue(int size, org.objectweb.asm.tree.AbstractInsnNode insnNode)
    Constructs a new SourceValue.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    equals(Object value)
     
    int
    Returns the size of this value.
    int
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • size

      public final int size
      The size of this value, in 32 bits words. This size is 1 for byte, boolean, char, short, int, float, object and array types, and 2 for long and double.
    • insns

      public final Set<org.objectweb.asm.tree.AbstractInsnNode> insns
      The instructions that can produce this value. For example, for the Java code below, the instructions that can produce the value of i at line 5 are the two ISTORE instructions at line 1 and 3:
       1: i = 0;
       2: if (...) {
       3:   i = 1;
       4: }
       5: return i;
       
  • Constructor Details

    • SourceValue

      public SourceValue(int size)
      Constructs a new SourceValue.
      Parameters:
      size - the size of this value, in 32 bits words. This size is 1 for byte, boolean, char, short, int, float, object and array types, and 2 for long and double.
    • SourceValue

      public SourceValue(int size, org.objectweb.asm.tree.AbstractInsnNode insnNode)
      Constructs a new SourceValue.
      Parameters:
      size - the size of this value, in 32 bits words. This size is 1 for byte, boolean, char, short, int, float, object and array types, and 2 for long and double.
      insnNode - an instruction that can produce this value.
    • SourceValue

      public SourceValue(int size, Set<org.objectweb.asm.tree.AbstractInsnNode> insnSet)
      Constructs a new SourceValue.
      Parameters:
      size - the size of this value, in 32 bits words. This size is 1 for byte, boolean, char, short, int, float, object and array types, and 2 for long and double.
      insnSet - the instructions that can produce this value.
  • Method Details

    • getSize

      public int getSize()
      Returns the size of this value.
      Specified by:
      getSize in interface Value
      Returns:
      the size of this value, in 32 bits words. This size is 1 for byte, boolean, char, short, int, float, object and array types, and 2 for long and double.
    • equals

      public boolean equals(Object value)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object