public class

EPrototypeHandler

extends Object
implements IEPrototypeHandler
java.lang.Object
   ↳ com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.EPrototypeHandler

Class Overview

Standard implementation used to handle wildcard prototypes. This class may be sub-classed and offered by converters.

Summary

Fields
protected IERoutineContext ctx
Public Constructors
EPrototypeHandler(IERoutineContext ctx)
Public Methods
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.
boolean refinePrototype()
Use a final CFG state to refine the method wildcard prototype.
boolean retrieveFromPrototype(List<IEGeneric> params, List<IWildcardType> rettypes)
Collect parameter EVars and return type(s).
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEPrototypeHandler

Fields

protected IERoutineContext ctx

Public Constructors

public EPrototypeHandler (IERoutineContext ctx)

Public Methods

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.

Returns
  • success indicator

public boolean refinePrototype ()

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.

Returns
  • true if the wildcard prototype in the IR context was updated

public boolean retrieveFromPrototype (List<IEGeneric> params, List<IWildcardType> rettypes)

Collect parameter EVars and return type(s). A prototype must exist.

Parameters
params output array to collect parameters info
rettypes output array to collect the return types
Returns
  • success indicator