Class ContextDescriptorFlags

java.lang.Object
ghidra.app.util.bin.format.swift.SwiftTypeMetadataStructure
ghidra.app.util.bin.format.swift.types.ContextDescriptorFlags
All Implemented Interfaces:
StructConverter

public class ContextDescriptorFlags extends SwiftTypeMetadataStructure
Represents a Swift ContextDescriptorFlags structure
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • getFlags

      public int getFlags()
      Returns the flags.
      Returns:
      the flags
    • getKind

      public ContextDescriptorKind getKind()
      Returns:
      the ContextDescriptorKind
    • hasInvertableProtocols

      public boolean hasInvertableProtocols()
      Returns whether or not the context has information about invertable protocols, which will show up as a trailing field in the context descriptor.
      Returns:
      whether or not the context has information about invertable protocols, which will show up as a trailing field in the context descriptor
    • isUnique

      public boolean isUnique()
      Returns whether this is a unique record describing the referenced context.
      Returns:
      whether this is a unique record describing the referenced context
    • isGeneric

      public boolean isGeneric()
      Returns whether the context being described is generic.
      Returns:
      whether the context being described is generic
    • getMetadataInitialization

      public MetadataInitializationKind getMetadataInitialization()
      Returns whether there's something unusual about how the metadata is initialized.
      Returns:
      whether there's something unusual about how the metadata is initialized
    • hasImportInfo

      public boolean hasImportInfo()
      Returns whether or not the type has extended import information.
      Returns:
      whether or not the type has extended import information
    • hasCanonicalMetadataPrespecializationsOrSingletonMetadataPonter

      public boolean hasCanonicalMetadataPrespecializationsOrSingletonMetadataPonter()
      Returns whether or not the generic type descriptor has a pointer to a list of canonical prespecializations, or the non-generic type descriptor has a pointer to its singleton metadata.
      Returns:
      whether or not the generic type descriptor has a pointer to a list of canonical prespecializations, or the non-generic type descriptor has a pointer to its singleton metadata
    • hasLayoutString

      public boolean hasLayoutString()
      Returns whether or not the metadata contains a pointer to a layout string.
      Returns:
      whether or not the metadata contains a pointer to a layout string
    • hasClassDefaultOverrideTable

      public boolean hasClassDefaultOverrideTable()
      Returns whether or not the class has a default override table.
      Returns:
      whether or not the class has a default override table
    • isClassActor

      public boolean isClassActor()
      Returns whether or not the class is an actor.
      Returns:
      whether or not the class is an actor
    • isClassDefaultActor

      public boolean isClassDefaultActor()
      Returns whether or not the class is a default actor.
      Returns:
      whether or not the class is a default actor
    • getClassResilientSuperclassReferenceKind

      public int getClassResilientSuperclassReferenceKind()
      Returns the kind of reference that this class makes to its resilient superclass descriptor. A TypeReferenceKind..
      Returns:
      the kind of reference that this class makes to its resilient superclass descriptor. A TypeReferenceKind.
    • areClassImmediateMembersNegative

      public boolean areClassImmediateMembersNegative()
      Returns whether the immediate class members in this metadata are allocated at negative offsets.
      Returns:
      whether the immediate class members in this metadata are allocated at negative offsets
    • hasClassResilientSuperclass

      public boolean hasClassResilientSuperclass()
      Returns Whether or not the context descriptor is for a class with resilient ancestry.
      Returns:
      Whether or not the context descriptor is for a class with resilient ancestry
    • hasClassOverrideTable

      public boolean hasClassOverrideTable()
      Returns whether or not the context descriptor includes metadata for dynamically installing method overrides at metadata instantiation time.
      Returns:
      whether or not the context descriptor includes metadata for dynamically installing method overrides at metadata instantiation time
    • hasClassVTable

      public boolean hasClassVTable()
      Returns whether or not the context descriptor includes metadata for dynamically constructing a class's vtables at metadata instantiation time.
      Returns:
      whether or not the context descriptor includes metadata for dynamically constructing a class's vtables at metadata instantiation time
    • getStructureName

      public String getStructureName()
      Description copied from class: SwiftTypeMetadataStructure
      Returns the name of the SwiftTypeMetadataStructure.
      Specified by:
      getStructureName in class SwiftTypeMetadataStructure
      Returns:
      the name of the SwiftTypeMetadataStructure
    • getDescription

      public String getDescription()
      Description copied from class: SwiftTypeMetadataStructure
      Returns a short description of the SwiftTypeMetadataStructure.
      Specified by:
      getDescription in class SwiftTypeMetadataStructure
      Returns:
      a short description of the SwiftTypeMetadataStructure
    • toDataType

      public DataType toDataType() throws DuplicateNameException, IOException
      Description copied from interface: StructConverter
      Returns a structure datatype representing the contents of the implementor of this interface.

      For example, given:

       class A {
           int foo;
           double bar;
       }
       

      The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

      Returns:
      returns a structure datatype representing the implementor of this interface
      Throws:
      DuplicateNameException - when a datatype of the same name already exists
      IOException - if an IO-related error occurs
      See Also: