com.pnfsoftware.jeb.core.units.code.asm.type.IStructureType |
Known Indirect Subclasses |
Type item representing a structure or union (structure wit overlapping fields).
Fields manipulation (addition, removal, etc.) can be done via the structure's controlling
type manager
.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.ICodeItem
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
abstract int |
getAlignment()
Retrieve the structure's actual global alignment.
| ||||||||||
abstract IStructureTypeField | getField(int index) | ||||||||||
abstract IStructureTypeField | getFieldAfter(int offset) | ||||||||||
abstract IStructureTypeField | getFieldAt(int offset, int bitstart) | ||||||||||
abstract IStructureTypeField | getFieldAt(int offset) | ||||||||||
abstract IStructureTypeField | getFieldByName(String name) | ||||||||||
abstract IStructureTypeField | getFieldOver(int offset) | ||||||||||
abstract List<? extends IStructureTypeField> |
getFields()
Get the list of true (non-synthetic) fields.
| ||||||||||
abstract int |
getFieldsCount()
Get the number of fields.
| ||||||||||
abstract List<? extends IStructureTypeField> |
getFieldsWithGaps()
Get a complete list of fields as well as gaps in-between fields (synthetic fields).
| ||||||||||
abstract int |
getIndexOfField(IStructureTypeField field)
Get the index of the provided field.
| ||||||||||
abstract int |
getPadding()
Retrieve the structure's fields alignment, aka fields padding/packing.
| ||||||||||
abstract boolean | isCircular(INativeType type) | ||||||||||
abstract boolean |
isStructure()
Determine whether this type is a structure (not a union).
| ||||||||||
abstract boolean |
isUnion()
Determine whether this type is a union (not a structure).
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From interface
com.pnfsoftware.jeb.core.units.code.ICodeItem
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.ICodeType
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.items.INativeItem
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.items.INativeItemListenable
| |||||||||||
From interface
com.pnfsoftware.jeb.core.units.code.asm.type.INativeType
|
Retrieve the structure's actual global alignment. It may be bigger than the alignment set when the structure was created (if any was provided).
Get the list of true (non-synthetic) fields.
Get the number of fields.
Get a complete list of fields as well as gaps in-between fields (synthetic fields).
Get the index of the provided field.
Retrieve the structure's fields alignment, aka fields padding/packing.
This value should not be negative. It is 0 if this object represents a union (no padding). In
the general case, the value is MAX_VALUE
to indicate that structure fields
are aligned on the size of their underlying primitive types, i.e. "natural" padding. Example:
a 4-byte integer field would be aligned on a 4-byte boundary. A padding value is value
indicates that members are byte-aligned (i.e. not aligned); a padding value of 2 indicates
members are aligned on at most 2-bytes, etc.
Determine whether this type is a structure (not a union).
Determine whether this type is a union (not a structure).