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 TypeMethodDescriptionbooleanapplyKnownPrototype(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.booleanUse a final CFG state to refine the method wildcard prototype.booleanretrieveFromPrototype(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:
applyKnownPrototypein interfaceIEPrototypeHandler- Parameters:
createCopies-- Returns:
- success indicator
-
retrieveFromPrototype
Description copied from interface:IEPrototypeHandlerCollect parameter EVars and return type(s). A prototype must exist.- Specified by:
retrieveFromPrototypein 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:IEPrototypeHandlerUse 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:
refinePrototypein interfaceIEPrototypeHandler- Returns:
- true if the wildcard prototype in the IR context was updated
-