Class EPrototypeHandler
java.lang.Object
com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.EPrototypeHandler
- All Implemented Interfaces:
IEPrototypeHandler
Standard implementation used to handle wildcard prototypes. This class may be sub-classed and
offered by converters.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
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
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).
-
Field Details
-
ctx
-
-
Constructor Details
-
EPrototypeHandler
-
-
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 interfaceIEPrototypeHandler
- Returns:
- success indicator
-
retrieveFromPrototype
Description copied from interface:IEPrototypeHandler
Collect parameter EVars and return type(s). A prototype must exist.- Specified by:
retrieveFromPrototype
in interfaceIEPrototypeHandler
- Parameters:
params
- output array to collect parameters inforettypes
- 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 currentIERoutineContext
'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 interfaceIEPrototypeHandler
- Returns:
- true if the wildcard prototype in the IR context was updated
-