Package ghidra.program.disassemble

# Class ReDisassembler.ReDisState

java.lang.Object
ghidra.program.disassemble.ReDisassembler.ReDisState

Enclosing class:
  `ReDisassembler`

protected class ReDisassembler.ReDisState extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final Set<Address>`
  `ctxAddrs`
  `protected final InstructionSet`
  `instructionSet`
  `protected final TaskMonitor`
  `monitor`
  `protected final Map<AddressSpace,DumbMemBufferImpl>`
  `progMemBuffers`
  `protected final Deque<ghidra.program.disassemble.ReDisassembler.Flow>`
  `queue`
  `protected final ProgramContext`
  `tempContext`
  `protected final AddressSet`
  `visited`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ReDisState(TaskMonitor monitor)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected ReDisassembler.ReDisState`
  `addFlow(ghidra.program.disassemble.ReDisassembler.Flow flow)`
  `protected ReDisassembler.ReDisState`
  `addSeed(Address seed)`
  `protected MemBuffer`
  `createBuffer(Address at)`
  `protected InstructionSet`
  `disassemble()`
  `protected boolean`
  `nextBlock()`
  Not necessarily a full block, but certainly no more than a block.
  `void`
  `writeContext()`

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

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

- ## Field Details

  - ### monitor

    protected final TaskMonitor monitor

  - ### progMemBuffers

    protected final Map<AddressSpace,DumbMemBufferImpl> progMemBuffers

  - ### tempContext

    protected final ProgramContext tempContext

  - ### visited

    protected final AddressSet visited

  - ### queue

    protected final Deque<ghidra.program.disassemble.ReDisassembler.Flow> queue

  - ### instructionSet

    protected final InstructionSet instructionSet

  - ### ctxAddrs

    protected final Set<Address> ctxAddrs

- ## Constructor Details

  - ### ReDisState

    public ReDisState(TaskMonitor monitor)

- ## Method Details

  - ### addSeed

    protected ReDisassembler.ReDisState addSeed(Address seed)

  - ### addFlow

    protected ReDisassembler.ReDisState addFlow(ghidra.program.disassemble.ReDisassembler.Flow flow)

  - ### createBuffer

    protected MemBuffer createBuffer(Address at)

  - ### nextBlock

    protected boolean nextBlock() throws CancelledException
    Not necessarily a full block, but certainly no more than a block.

    It's also not necessarily a basic block, since this doesn't care about jumps into the block. It simply starts at the next seed and proceeds until either the existing instruction and context matches what's already there, or it encounters an unconditional branch.

    Returns:
      true if the queue is non-empty after completing this block, false if we're done.
    Throws:
      `CancelledException`

  - ### disassemble

    protected InstructionSet disassemble() throws CancelledException
    Throws:
      `CancelledException`

  - ### writeContext

    public void writeContext()