Package ghidra.program.model.pcode

# Class BlockCopy

java.lang.Object
ghidra.program.model.pcode.PcodeBlock
ghidra.program.model.pcode.BlockCopy

public class BlockCopy extends PcodeBlock
Placeholder for a basic block (BlockBasic) within a structured control-flow graph. It originally mirrors the in and out edges of the basic block, but edges may be modified during the structuring process. This copy holds a reference to the actual basic block

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class ghidra.program.model.pcode.PcodeBlock

  `PcodeBlock.BlockEdge`

- ## Field Summary

  ### Fields inherited from class ghidra.program.model.pcode.PcodeBlock

  `BASIC, CONDITION, COPY, DOWHILE, GOTO, GRAPH, IFELSE, IFGOTO, INFLOOP, LIST, MULTIGOTO, PLAIN, PROPERIF, SWITCH, WHILEDO`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BlockCopy()`
  `BlockCopy(Object r, Address addr)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `decodeHeader(Decoder decoder)`
  `protected void`
  `encodeHeader(Encoder encoder)`
  Encode basic attributes to stream.
  `int`
  `getAltIndex()`
  `Object`
  `getRef()`
  `Address`
  `getStart()`
  `Address`
  `getStop()`
  `protected void`
  `set(Object r, Address addr)`
  Used (by BlockGraph.transferObjectRef) to reset the internal Object and Address

  ### Methods inherited from class ghidra.program.model.pcode.PcodeBlock

  `addInEdge, calcDepth, decode, decodeBody, decodeEdges, decodeNextInEdge, decodeNextInEdge, encode, encodeBody, encodeEdges, getFalseOut, getFrontLeaf, getIn, getIndex, getInRevIndex, getInSize, getOut, getOutRevIndex, getOutSize, getParent, getTrueOut, getType, nameToType, setIndex, toString, typeToName`

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

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

- ## Constructor Details

  - ### BlockCopy

    public BlockCopy()

  - ### BlockCopy

    public BlockCopy(Object r, Address addr)

- ## Method Details

  - ### getStart

    public Address getStart()
    Overrides:
      `getStart` in class `PcodeBlock`
    Returns:
      the first Address covered by this block

  - ### getStop

    public Address getStop()
    Overrides:
      `getStop` in class `PcodeBlock`
    Returns:
      the last Address covered by this block

  - ### getRef

    public Object getRef()
    Returns:
      the underlying basic block Object

  - ### set

    protected void set(Object r, Address addr)
    Used (by BlockGraph.transferObjectRef) to reset the internal Object and Address
    Parameters:
      `r` - is the internal Object
      `addr` - is the Address

  - ### getAltIndex

    public int getAltIndex()
    Returns:
      the alternative index, used as an id for the original basic block Object

  - ### encodeHeader

    protected void encodeHeader(Encoder encoder) throws IOException
    Description copied from class: `PcodeBlock`
    Encode basic attributes to stream. Assume this block's element is already started.
    Overrides:
      `encodeHeader` in class `PcodeBlock`
    Parameters:
      `encoder` - is the stream encoder
    Throws:
      `IOException` - for errors writing to the underlying stream

  - ### decodeHeader

    protected void decodeHeader(Decoder decoder) throws DecoderException
    Overrides:
      `decodeHeader` in class `PcodeBlock`
    Throws:
      `DecoderException`