com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardTypeManager |
A wildcard type manager manages wildcard types (partially defined types) used by JEB's native decompiler.
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract void |
addListener(INativeItemListener listener)
Register a listener relaying events generated by this type manager's type items.
| ||||||||||
abstract IWildcardType |
create(String nativeTypeSignature)
Create a wildcard type wrapping the provided native type signature.
| ||||||||||
abstract IWildcardType |
create(INativeType nativeType)
Create a wildcard type wrapping the provided native type.
| ||||||||||
abstract IWildcardType |
createPointer(int pointedBitsize)
Create a wildcard type pointer.
| ||||||||||
abstract IWildcardPrototype |
createPrototype(ICallingConvention cc, IWildcardType retType, List<IWildcardType> paramTypes, Collection<PrototypeAttribute> attributes)
Create a wildcard prototype.
| ||||||||||
abstract IWildcardPrototype |
createPrototype(IPrototypeItem nativePrototype)
Generate a wildcard prototype from the provided native prototype.
| ||||||||||
abstract IWildcardPrototype |
createPrototype(ICallingConvention cc, List<IWildcardType> returnTypes, List<IWildcardType> paramTypes, Collection<PrototypeAttribute> attributes)
Create a wildcard prototype.
| ||||||||||
abstract IWildcardType |
createWithBitsizes(int maximumBitsize, int effectiveBitsize)
Create a wildcard type having the provided maximum and effective bitsize.
| ||||||||||
abstract IWildcardType |
createWithEffectiveBitsize(int effectiveBitsize)
Create a wildcard type having the provided effective bitsize.
| ||||||||||
abstract IWildcardType |
createWithMaximumBitsize(int maximumBitsize)
Create a wildcard type having the provided maximum bitsize.
| ||||||||||
abstract IWildcardType |
createWithSlotcount(int slotcount)
Create a wildcard type having a maximum bitsize matching the provided slot count (eg, if a
stack slot is 32-bit, creating a wildcard type using this method with parameter 2 will
generate a new wildcard type whose maximum bitsize is 64).
| ||||||||||
abstract ITypeManager |
getNativeTypeManager()
Retrieve the native type manager connected to this wildcard type manager.
| ||||||||||
abstract int | getPointerBitsize() | ||||||||||
abstract int | getSlotBitsize() | ||||||||||
abstract IWildcardType |
parse(String s)
Parse the string representation of a wildcard type.
| ||||||||||
abstract IWildcardType |
parse(String s, int physicalBitsizeHint)
Parse the string representation of a wildcard type.
| ||||||||||
abstract void |
removeListener(INativeItemListener listener)
Unregister a listener.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.asm.items.INativeItemListenable
|
Register a listener relaying events generated by this type manager's type items.
Create a wildcard type wrapping the provided native type signature. This is the easiest way to create a wildcard type that is an exact correspondence of a native type.
Create a wildcard type wrapping the provided native type. This is the easiest way to create a wildcard type that is an exact correspondence of a native type.
Create a wildcard type pointer. Important note: the maximum size is set to be the size of one stack slot, ie, a stack slot is supposed to be able to contain a pointer.
pointedBitsize | 0 means unknown |
---|
pointer
Create a wildcard prototype.
Generate a wildcard prototype from the provided native prototype.
nativePrototype | a native prototype |
---|
Create a wildcard prototype.
Create a wildcard type having the provided maximum and effective bitsize.
maximumBitsize | maximum bitsize |
---|---|
effectiveBitsize | must be less than or equal to maximum bitsize |
Create a wildcard type having the provided effective bitsize. The maximum bitsize will be the one of the smallest native integer primitive type that can accommodate the provided effective bitsize.
Create a wildcard type having the provided maximum bitsize.
maximumBitsize | maximum bitsize |
---|
Create a wildcard type having a maximum bitsize matching the provided slot count (eg, if a stack slot is 32-bit, creating a wildcard type using this method with parameter 2 will generate a new wildcard type whose maximum bitsize is 64).
A slot is typically the size of a standard general purpose register.
Retrieve the native type manager connected to this wildcard type manager.
Parse the string representation of a wildcard type.
Same as parse(s, 0)
s | type string |
---|
Parse the string representation of a wildcard type.
s | type string |
---|---|
physicalBitsizeHint | optional, used only if the type string does not provide explicit physical bitsize; 0 means use the type string physical bitsize or else, the bitsize of a single slot |