Package ghidra.app.cmd.analysis

# Class SharedReturnAnalysisCmd

java.lang.Object
ghidra.framework.cmd.BackgroundCommand<Program>
ghidra.app.cmd.analysis.SharedReturnAnalysisCmd

All Implemented Interfaces:
  `Command<Program>`

public class SharedReturnAnalysisCmd extends BackgroundCommand<Program>
Identifies functions to which Jump references exist and converts the associated branching instruction flow to a CALL-RETURN

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SharedReturnAnalysisCmd(AddressSetView set, boolean assumeContiguousFunctions, boolean considerConditionalBranches)`
  Constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `applyTo(Program program, TaskMonitor monitor)`
  Method called when this command is to apply changes to the given domain object.

  ### Methods inherited from class ghidra.framework.cmd.BackgroundCommand

  `applyTo, canCancel, dispose, getName, getStatusMsg, hasProgress, isModal, run, setStatusMsg, taskCompleted, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### SharedReturnAnalysisCmd

    public SharedReturnAnalysisCmd(AddressSetView set, boolean assumeContiguousFunctions, boolean considerConditionalBranches)
    Constructor
    Parameters:
      `set` - set of addresses over which destination functions will be examined for Jump reference to those functions.
      `assumeContiguousFunctions` - if true it will be assumed that any unconditional jump over another function will trigger a call-return override and the creation of
      `considerConditionalBranches` - if true conditional jumps can also be considered for jumping to another function as a shared return. a function at the destination.

- ## Method Details

  - ### applyTo

    public boolean applyTo(Program program, TaskMonitor monitor)
    Description copied from class: `BackgroundCommand`
    Method called when this command is to apply changes to the given domain object. A monitor is provided to display status information about the command as it executes in the background.
    Specified by:
      `applyTo` in class `BackgroundCommand<Program>`
    Parameters:
      `program` - domain object that will be affected by the command
      `monitor` - monitor to show progress of the command
    Returns:
      true if the command applied successfully