java.lang.Object | |
↳ | com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.EPrototypeHandler |
Standard implementation used to handle wildcard prototypes. This class may be sub-classed and offered by converters.
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
|
This implementation may need data chains, will calculate them if so, and invalidate them upon return if the prototype application rendered them stale.
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.
Collect parameter EVars and return type(s). A prototype must exist.
params | output array to collect parameters info |
---|---|
rettypes | output array to collect the return types |