Class AbstractReflectionInterpreter.SpecializedMethod

java.lang.Object
com.ibm.wala.classLoader.SyntheticMethod
com.ibm.wala.analysis.reflection.AbstractReflectionInterpreter.SpecializedMethod
All Implemented Interfaces:
IMember, IMethod, ContextItem, IClassHierarchyDweller
Direct Known Subclasses:
FactoryBypassInterpreter.SpecializedFactoryMethod
Enclosing class:
AbstractReflectionInterpreter

protected class AbstractReflectionInterpreter.SpecializedMethod extends SyntheticMethod
  • Field Details

    • typesAllocated

      protected final HashSet<TypeReference> typesAllocated
      Set of types that we have already inserted an allocation for.
    • allocations

      protected final ArrayList<SSAInstruction> allocations
      List of synthetic allocation statements we model for this specialized instance
    • calls

      protected final ArrayList<SSAInstruction> calls
      List of synthetic invoke instructions we model for this specialized instance.
    • allInstructions

      protected final ArrayList<SSAInstruction> allInstructions
      List of all instructions
  • Constructor Details

    • SpecializedMethod

      public SpecializedMethod(MethodReference method, IClass declaringClass, boolean isStatic, boolean isFactory)
    • SpecializedMethod

      public SpecializedMethod(IMethod method, IClass declaringClass, boolean isStatic, boolean isFactory)
  • Method Details

    • addInstruction

      protected void addInstruction(TypeReference T, SSAInstruction instr, boolean isAllocation)
      Parameters:
      T - type allocated by the instruction.
    • addStatementsForConcreteSimpleType

      protected int addStatementsForConcreteSimpleType(TypeReference t)
      Parameters:
      t - type of object to allocate
      Returns:
      value number of the newly allocated object
    • addCtorInvokeInstruction

      protected void addCtorInvokeInstruction(TypeReference t, int alloc)
      Add an instruction to invoke the default constructor on the object of value number alloc of type t.