Class ReturnParameterDB

java.lang.Object
ghidra.program.database.function.VariableDB
ghidra.program.database.function.ReturnParameterDB
All Implemented Interfaces:
Parameter, Variable, Comparable<Variable>

public class ReturnParameterDB extends VariableDB
  • Method Details

    • isVoidAllowed

      protected boolean isVoidAllowed()
      Overrides:
      isVoidAllowed in class VariableDB
    • getName

      public String getName()
      Description copied from interface: Variable
      Get the Name of this variable or null if not assigned or not-applicable
      Specified by:
      getName in interface Variable
      Overrides:
      getName in class VariableDB
      Returns:
      the name of the variable
    • setName

      public void setName(String name, SourceType source) throws DuplicateNameException, InvalidInputException
      Description copied from interface: Variable
      Set the name of this variable.
      Specified by:
      setName in interface Variable
      Overrides:
      setName in class VariableDB
      Parameters:
      name - the name
      source - the source of this variable name
      Throws:
      DuplicateNameException - if the name collides with the name of another variable.
      InvalidInputException - if name contains blank characters, is zero length, or is null
    • getComment

      public String getComment()
      Description copied from interface: Variable
      Get the Comment for this variable
      Specified by:
      getComment in interface Variable
      Overrides:
      getComment in class VariableDB
      Returns:
      the comment
    • setComment

      public void setComment(String comment)
      Description copied from interface: Variable
      Set the comment for this variable
      Specified by:
      setComment in interface Variable
      Overrides:
      setComment in class VariableDB
      Parameters:
      comment - the comment
    • getOrdinal

      public final int getOrdinal()
      Description copied from interface: Parameter
      Returns the ordinal (index) of this parameter within the function signature.
      Specified by:
      getOrdinal in interface Parameter
    • setDataType

      public void setDataType(DataType type, VariableStorage newStorage, boolean force, SourceType source) throws InvalidInputException, VariableSizeException
      Description copied from interface: Variable
      Set the Data Type of this variable and the associated storage whose size matches the data type length.

      NOTE: The storage and source are ignored if the function does not have custom storage enabled.

      Specified by:
      setDataType in interface Variable
      Overrides:
      setDataType in class VariableDB
      Parameters:
      type - the data type
      newStorage - properly sized storage for the new data type
      force - overwrite conflicting variables
      source - variable storage source (used only for function parameters and return)
      Throws:
      InvalidInputException - if data type is not a fixed length or violates storage constraints.
      VariableSizeException - if force is false and data type size causes a conflict with other variables
    • setDataType

      public void setDataType(DataType type, SourceType source) throws InvalidInputException
      Description copied from interface: Variable
      Set the Data Type of this variable using the default alignment behavior (implementation specific). The given dataType must have a fixed length. If contained within a stack-frame, data-type size will be constrained by existing variables (e.g., equivalent to force=false) Note: stack offset will be maintained for stack variables.
      Specified by:
      setDataType in interface Variable
      Overrides:
      setDataType in class VariableDB
      Parameters:
      type - the data type
      source - signature source
      Throws:
      InvalidInputException - if data type is not a fixed length or violates storage constraints.
      VariableSizeException - if data type size causes a conflict with other variables
      See Also:
    • setDataType

      public void setDataType(DataType type, boolean alignStack, boolean force, SourceType source) throws InvalidInputException
      Description copied from interface: Variable
      Set the Data Type of this variable. The given dataType must have a fixed length.
      Specified by:
      setDataType in interface Variable
      Overrides:
      setDataType in class VariableDB
      Parameters:
      type - the data type
      alignStack - maintain proper stack alignment/justification if supported by implementation. If false and this is a stack variable, the current stack address/offset will not change. If true, the affect is implementation dependent since alignment can not be performed without access to a compiler specification.
      force - overwrite conflicting variables
      source - signature source
      Throws:
      InvalidInputException - if data type is not a fixed length or violates storage constraints.
      VariableSizeException - if force is false and data type size causes a conflict with other variables
    • getFormalDataType

      public DataType getFormalDataType()
      Description copied from interface: Parameter
      Get the original formal signature data type before a possible forced indirect was possibly imposed by the functions calling convention. The Variable.getDataType() method will always return the effective data type which corresponds to the allocated variable storage.
      Specified by:
      getFormalDataType in interface Parameter
      Returns:
      Formal data type. This type will only differ from the Variable.getDataType() value if this parameter isForcedIndirect.
    • getDataType

      public DataType getDataType()
      Description copied from interface: Variable
      Get the Data Type of this variable
      Specified by:
      getDataType in interface Variable
      Returns:
      the data type of the variable
    • isForcedIndirect

      public boolean isForcedIndirect()
      Description copied from interface: Parameter
      If this parameter which was forced by the associated calling convention to be passed as a pointer instead of its original formal type.
      Specified by:
      isForcedIndirect in interface Parameter
      Returns:
      true if this parameter was forced to be passed as a pointer instead of its original formal type
    • getSource

      public SourceType getSource()
      Description copied from interface: Variable
      Get the source of this variable
      Specified by:
      getSource in interface Variable
      Overrides:
      getSource in class VariableDB
      Returns:
      the source of this variable
    • hasAssignedStorage

      public boolean hasAssignedStorage()
      Specified by:
      hasAssignedStorage in interface Variable
      Overrides:
      hasAssignedStorage in class VariableDB
      Returns:
      true if this variable has been assigned storage. This is equivalent to Variable.getVariableStorage() != null
    • getVariableStorage

      public VariableStorage getVariableStorage()
      Description copied from interface: Variable
      Get the variable storage associated with this variable.
      Specified by:
      getVariableStorage in interface Variable
      Overrides:
      getVariableStorage in class VariableDB
      Returns:
      the variable storage for this variable
    • getFirstUseOffset

      public int getFirstUseOffset()
      Specified by:
      getFirstUseOffset in interface Variable
      Returns:
      the first use offset relative to the function entry point.
    • isAutoParameter

      public boolean isAutoParameter()
      Specified by:
      isAutoParameter in interface Parameter
      Returns:
      true if this parameter is automatically generated based upon the associated function calling convention and function signature. An example of such a parameter include the "__return_storage_ptr__" parameter.
    • getAutoParameterType

      public AutoParameterType getAutoParameterType()
      Description copied from interface: Parameter
      If this is an auto-parameter this method will indicate its type.
      Specified by:
      getAutoParameterType in interface Parameter
      Returns:
      auto-parameter type of null if not applicable.