java.lang.Object
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.EPrototypeHandler
All Implemented Interfaces:
IEPrototypeHandler

public class EPrototypeHandler extends Object implements IEPrototypeHandler
Standard implementation used to handle wildcard prototypes. This class may be sub-classed and offered by converters.
  • Field Details

  • Constructor Details

  • Method Details

    • applyKnownPrototype

      public boolean applyKnownPrototype(boolean createCopies)
      This implementation may need data chains, will calculate them if so, and invalidate them upon return if the prototype application rendered them stale.
      Specified by:
      applyKnownPrototype in interface IEPrototypeHandler
      Returns:
      success indicator
    • retrieveFromPrototype

      public boolean retrieveFromPrototype(List<IEGeneric> params, List<IWildcardType> rettypes)
      Description copied from interface: IEPrototypeHandler
      Collect parameter EVars and return type(s). A prototype must exist.
      Specified by:
      retrieveFromPrototype in interface IEPrototypeHandler
      Parameters:
      params - output array to collect parameters info
      rettypes - output array to collect the return types
      Returns:
      success indicator
    • refinePrototype

      public boolean refinePrototype()
      Description copied from interface: IEPrototypeHandler
      Use a final CFG state to refine the method wildcard prototype. The current IERoutineContext's wildcard prototype is updated.

      Example: after analysis, a routine prototype may have been determined to be ?(?,?) (= 1 return, 2 params). The actual types have yet to be determined. The CFG instructions (after typing) may carry such information. It is especially important for return types.

      Specified by:
      refinePrototype in interface IEPrototypeHandler
      Returns:
      true if the wildcard prototype in the IR context was updated