|
decompiler
1.0.0
|
A control-flow edge between blocks (FlowBlock) More...
#include <block.hh>
Public Member Functions | |
| BlockEdge (void) | |
| Constructor for use with restoreXml. | |
| BlockEdge (FlowBlock *pt, uint4 lab, int4 rev) | |
| Constructor. | |
| void | saveXml (ostream &s) const |
| Save the edge to an XML stream. More... | |
| void | restoreXml (const Element *el, BlockMap &resolver) |
| Restore this edge from an XML stream. More... | |
Public Attributes | |
| uint4 | label |
| Label of the edge. | |
| FlowBlock * | point |
| Other end of the edge. | |
| int4 | reverse_index |
| Index for edge coming other way. | |
A control-flow edge between blocks (FlowBlock)
The edge is owned by the source block and can have FlowBlock::edge_flags labels applied to it. The point indicates the FlowBlock at the other end from the source block. NOTE: The control-flow direction of the edge can only be determined from context, whether the edge is in the incoming or outgoing edge list.
Restore this edge from an XML stream.
| el | is the <edge> tag |
| resolver | is used to cross-reference the edge's FlowBlock endpoints |
References BlockMap::findLevelBlock(), Element::getAttributeValue(), label, point, and reverse_index.
Referenced by BlockEdge(), BlockGraph::emit(), FlowBlock::restoreNextInEdge(), and FlowBlock::restoreXmlBody().
| void BlockEdge::saveXml | ( | ostream & | s | ) | const |
Save the edge to an XML stream.
The edge is saved assuming we already know what block we are in
| s | is the output stream |
References a_v_i(), FlowBlock::getIndex(), point, and reverse_index.
Referenced by BlockEdge(), FlowBlock::restoreXmlBody(), and BlockGraph::saveXmlBody().
1.8.11