Class RTTIDataType
java.lang.Object
ghidra.program.model.data.AbstractDataType
ghidra.program.model.data.DataTypeImpl
ghidra.program.model.data.BuiltIn
ghidra.program.model.data.DynamicDataType
ghidra.app.util.datatype.microsoft.RTTIDataType
- All Implemented Interfaces:
BuiltInDataType
,DataType
,Dynamic
,ExtensionPoint
- Direct Known Subclasses:
RTTI0DataType
,RTTI1DataType
,RTTI2DataType
,RTTI3DataType
,RTTI4DataType
An abstract class that each RTTI data type should extend to get common functionality.
-
Field Summary
Fields inherited from class ghidra.program.model.data.DataTypeImpl
defaultSettings
Fields inherited from class ghidra.program.model.data.AbstractDataType
categoryPath, dataMgr, name
Fields inherited from interface ghidra.program.model.data.DataType
CONFLICT_SUFFIX, DEFAULT, NO_LAST_CHANGE_TIME, NO_SOURCE_SYNC_TIME, TYPEDEF_ATTRIBUTE_PREFIX, TYPEDEF_ATTRIBUTE_SUFFIX, VOID
-
Constructor Summary
ModifierConstructorDescriptionprotected
RTTIDataType
(String name, DataTypeManager dtm) Creates an RTTI data type. -
Method Summary
Modifier and TypeMethodDescriptionprotected DataValidationOptions
convertValidationOptions
(boolean overwriteInstructions, boolean overwriteDefinedData) Creates a DataValidationOptions object with the indicated settings for instructions and defined data.boolean
isValid
(Program program, Address startAddress, boolean overwriteInstructions, boolean overwriteDefinedData) Deprecated.abstract boolean
isValid
(Program program, Address address, DataValidationOptions validationOptions) Determines if the data type is valid for placing at the indicated address in the program.Methods inherited from class ghidra.program.model.data.DynamicDataType
canSpecifyLength, getAllComponents, getComponent, getComponentAt, getComponents, getComps, getLength, getLength, getNumComponents, getReplacementBaseType, invalidateCache
Methods inherited from class ghidra.program.model.data.BuiltIn
addParent, copy, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, getBuiltInSettingsDefinitions, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getDecompilerDisplayName, getLastChangeTime, getSettingsDefinitions, getUniversalID, isEquivalent, removeParent, setCategoryPath, setDefaultSettings, setName, setNameAndCategory
Methods inherited from class ghidra.program.model.data.DataTypeImpl
equals, getAlignedLength, getAlignment, getDefaultSettings, getLastChangeTimeInSourceArchive, getParents, getPathName, getSourceArchive, getValueClass, hashCode, notifyAlignmentChanged, notifyDeleted, notifyNameChanged, notifyParents, notifyReplaced, notifySizeChanged, replaceWith, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setSourceArchive
Methods inherited from class ghidra.program.model.data.AbstractDataType
dataTypeAlignmentChanged, encodeRepresentation, encodeValue, getCategoryPath, getDataOrganization, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDisplayName, getDocs, getMnemonic, getName, getTypeDefSettingsDefinitions, hasLanguageDependantLength, isDeleted, isEncodable, isNotYetDefined, isZeroLength, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ghidra.program.model.data.BuiltInDataType
getCTypeDeclaration, setDefaultSettings
Methods inherited from interface ghidra.program.model.data.DataType
addParent, clone, copy, dataTypeAlignmentChanged, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, encodeRepresentation, encodeValue, getAlignedLength, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDescription, getDisplayName, getDocs, getLastChangeTime, getLastChangeTimeInSourceArchive, getMnemonic, getName, getParents, getPathName, getRepresentation, getSettingsDefinitions, getSourceArchive, getTypeDefSettingsDefinitions, getUniversalID, getValue, getValueClass, hasLanguageDependantLength, isDeleted, isEncodable, isEquivalent, isNotYetDefined, isZeroLength, removeParent, replaceWith, setCategoryPath, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive
-
Constructor Details
-
RTTIDataType
Creates an RTTI data type.- Parameters:
name
- the name of the data type.dtm
- the data type manager for this data type.
-
-
Method Details
-
isValid
@Deprecated public boolean isValid(Program program, Address startAddress, boolean overwriteInstructions, boolean overwriteDefinedData) Deprecated.Determines if the data type is valid for placing at the indicated address in the program.- Parameters:
program
- the programstartAddress
- the start addressoverwriteInstructions
- true indicates that existing instructions can be overwritten by this data type.overwriteDefinedData
- true indicates that existing defined data can be overwritten by this data type.- Returns:
- true if this data type can be laid down at the specified address.
- See Also:
-
convertValidationOptions
protected DataValidationOptions convertValidationOptions(boolean overwriteInstructions, boolean overwriteDefinedData) Creates a DataValidationOptions object with the indicated settings for instructions and defined data. Other validation options will be set to the default values.- Parameters:
overwriteInstructions
- true indicates it is valid to overwrite instructionsoverwriteDefinedData
- true indicates it is valid to overwrite defined data- Returns:
- the DataValidationOptions object
-
isValid
public abstract boolean isValid(Program program, Address address, DataValidationOptions validationOptions) Determines if the data type is valid for placing at the indicated address in the program.- Parameters:
program
- the programaddress
- the address where the validated data type will be used to create datavalidationOptions
- options indicating how to perform the validation- Returns:
- true if this data type can be laid down at the specified address
-