Class RTTI1DataType

  • All Implemented Interfaces:
    BuiltInDataType, DataType, Dynamic, ExtensionPoint, java.util.EventListener, javax.swing.event.ChangeListener

    @Deprecated
    public class RTTI1DataType
    extends RTTIDataType
    Deprecated.
    Use of this dynamic data type class is no longer recommended. Instead a BaseClassDescriptor structure data type can be obtained using the Rtti1Model.
    The RTTI1 data type represents a BaseClassDescriptor structure.

    Fields for this RunTimeTypeInformation structure can be found on http://www.openrce.org

     struct BaseClassDescriptor {
         4byte_ptr_or_disp pTypeDescriptor; // ref to TypeDescriptor (RTTI 0) for class
         dword numContainedBases;           // count of extended classes in BaseClassArray (RTTI 2)
         struct pmd where;                  // member displacement structure
         dword attributes;                  // bit flags
     }
     

     struct pmd {
         int mdisp; // member displacement
         int pdisp; // vbtable displacement
         int vdisp; // displacement within vbtable
     }
     

    RTTI_Base_Class_Descriptor is the label for the RTTI1 data structure.

    • Constructor Detail

      • RTTI1DataType

        public RTTI1DataType()
        Deprecated.
        Creates a dynamic Base Class Descriptor data type.
      • RTTI1DataType

        public RTTI1DataType​(DataTypeManager dtm)
        Deprecated.
        Creates a dynamic Base Class Descriptor data type.
        Parameters:
        dtm - the data type manager for this data type.
    • Method Detail

      • clone

        public DataType clone​(DataTypeManager dtm)
        Deprecated.
        Description copied from interface: DataType
        Returns a new instance of this DataType with its universalID and SourceArchive identity retained. Note: for built-in DataType's, clone and copy should have the same affect.
        Parameters:
        dtm - the data-type manager instance whose data-organization should apply.
      • getDescription

        public java.lang.String getDescription()
        Deprecated.
        Description copied from interface: DataType
        Get a String briefly describing this DataType.
        Returns:
        a one-liner describing this DataType.
      • getLength

        public int getLength()
        Deprecated.
        Description copied from interface: DataType
        Get the length (number of 8-bit bytes) of this DataType.
        Specified by:
        getLength in interface DataType
        Overrides:
        getLength in class DynamicDataType
        Returns:
        the length of this DataType
      • getRepresentation

        public java.lang.String getRepresentation​(MemBuffer buf,
                                                  Settings settings,
                                                  int length)
        Deprecated.
        Description copied from interface: DataType
        Get bytes from memory in a printable format for this type.
        Parameters:
        buf - the data.
        settings - the settings to use for the representation.
        length - the number of bytes to represent.
        Returns:
        the representation of the data in this format, never null.
      • getValue

        public java.lang.Object getValue​(MemBuffer buf,
                                         Settings settings,
                                         int length)
        Deprecated.
        Description copied from interface: DataType
        Get the data in the form of the appropriate Object for this DataType. For instance if the data type is an AddressDT, return an Address object. a Byte, return a Scalar* (maybe this should be a Byte) a Float, return a Float
        Parameters:
        buf - the data buffer.
        settings - the settings to use.
        length - the number of bytes to get the value from.
        Returns:
        the data Object.
      • getLength

        public int getLength​(Memory memory,
                             Address address,
                             byte[] bytes)
        Deprecated.
        Gets the total length of the data created when this data type is placed at the indicated address in memory.
        Parameters:
        memory - the program memory for this data.
        address - the start address of the data.
        bytes - the bytes for this data.
        Returns:
        the length of the data. zero is returned if valid data can't be created at the indicated address using this data type.
      • getRtti0Address

        public Address getRtti0Address​(Memory memory,
                                       Address rtti1Address)
        Deprecated.
        Gets the address of the RTTI 0 or null if one isn't indicated.
        Parameters:
        memory - the program memory containing the address
        rtti1Address - the address for the RTTI 1 that refers to the RTTI 0
        Returns:
        the address of the RTTI 0 or null.
      • getRtti0Address

        public Address getRtti0Address​(Program program,
                                       Address rtti1Address)
        Deprecated.
        Gets the address of the RTTI 0 or null if one isn't indicated.
        Parameters:
        program - the program containing the address
        rtti1Address - the address for the RTTI 1 that refers to the RTTI 0
        Returns:
        the address of the RTTI 0 or null.
      • isValid

        public boolean isValid​(Program program,
                               Address startAddress,
                               DataValidationOptions validationOptions)
        Deprecated.
        Description copied from class: RTTIDataType
        Determines if the data type is valid for placing at the indicated address in the program.
        Specified by:
        isValid in class RTTIDataType
        Parameters:
        program - the program
        startAddress - the address where the validated data type will be used to create data
        validationOptions - options indicating how to perform the validation
        Returns:
        true if this data type can be laid down at the specified address
      • getDefaultLabelPrefix

        public java.lang.String getDefaultLabelPrefix()
        Deprecated.
        Description copied from interface: DataType
        Returns the appropriate string to use as the default label prefix in the absence of any data.
        Specified by:
        getDefaultLabelPrefix in interface DataType
        Overrides:
        getDefaultLabelPrefix in class AbstractDataType
        Returns:
        the default label prefix or null if none specified.