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
,java.util.EventListener
,javax.swing.event.ChangeListener
- Direct Known Subclasses:
RTTI0DataType
,RTTI1DataType
,RTTI2DataType
,RTTI3DataType
,RTTI4DataType
public abstract class RTTIDataType extends DynamicDataType
An abstract class that each RTTI data type should extend to get common functionality.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPoint
ExtensionPoint.Exclude, ExtensionPoint.Util
-
-
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, VOID
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RTTIDataType(java.lang.String name, DataTypeManager dtm)
Creates an RTTI data type.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected 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, getLength, getLength, getNumComponents, getReplacementBaseType, invalidateCache, isDynamicallySized
-
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, setName, setNameAndCategory
-
Methods inherited from class ghidra.program.model.data.DataTypeImpl
equals, getAlignment, getDefaultSettings, getLastChangeTimeInSourceArchive, getParents, getPathName, getSourceArchive, getValueClass, hashCode, notifyDeleted, notifyNameChanged, notifyReplaced, notifySizeChanged, replaceWith, setDefaultSettings, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setSourceArchive, stateChanged
-
Methods inherited from class ghidra.program.model.data.AbstractDataType
getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDisplayName, getDocs, getMnemonic, getName, isDeleted, isNotYetDefined, 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
-
Methods inherited from interface ghidra.program.model.data.DataType
addParent, clone, copy, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDescription, getDisplayName, getDocs, getLastChangeTime, getLastChangeTimeInSourceArchive, getMnemonic, getName, getParents, getPathName, getRepresentation, getSettingsDefinitions, getSourceArchive, getUniversalID, getValue, getValueClass, isDeleted, isEquivalent, isNotYetDefined, removeParent, replaceWith, setCategoryPath, setDefaultSettings, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive
-
-
-
-
Constructor Detail
-
RTTIDataType
protected RTTIDataType(java.lang.String name, DataTypeManager dtm)
Creates an RTTI data type.- Parameters:
name
- the name of the data type.dtm
- the data type manager for this data type.
-
-
Method Detail
-
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 programaddress
- the 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:
isValid(Program program, Address address, DataValidationOptions validationOptions)
-
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
-
-