|
decompiler
1.0.0
|
Helper class for resolving cross-references while deserializing BlockGraph objects. More...
#include <block.hh>
Public Member Functions | |
| BlockMap (const AddrSpaceManager *m) | |
| Construct given an address space manager. | |
| BlockMap (const BlockMap &op2) | |
| Copy constructor. | |
| const AddrSpaceManager * | getAddressManager (void) const |
| Get the address space manager. | |
| void | sortList (void) |
| Sort the list of FlowBlock objects. | |
| FlowBlock * | findLevelBlock (int4 index) const |
| Find the FlowBlock matching the given index. More... | |
| FlowBlock * | createBlock (const string &name) |
| Create a FlowBlock of the named type. More... | |
Private Member Functions | |
| FlowBlock * | resolveBlock (FlowBlock::block_type bt) |
| Construct a FlowBlock of the given type. More... | |
Static Private Member Functions | |
| static FlowBlock * | findBlock (const vector< FlowBlock * > &list, int4 ind) |
| Locate a FlowBlock with a given index. More... | |
Private Attributes | |
| const AddrSpaceManager * | manage |
| Address space manager used to restore FlowBlock address ranges. | |
| vector< FlowBlock * > | sortlist |
| The list of deserialized FlowBlock objects. | |
Helper class for resolving cross-references while deserializing BlockGraph objects.
FlowBlock objects are serialized with their associated index value and edges are serialized with the indices of the FlowBlock end-points. During deserialization, this class maintains a list of FlowBlock objects sorted by index and then looks up the FlowBlock matching a given index as edges specify them.
| FlowBlock * BlockMap::createBlock | ( | const string & | name | ) |
Create a FlowBlock of the named type.
Given the name of a block (deserialized from a <bhead> tag), build the corresponding type of block.
| name | is the name of the block type |
References FlowBlock::nameToType().
Referenced by BlockGraph::restoreXmlBody().
Locate a FlowBlock with a given index.
Given a list of FlowBlock objects sorted by index, use binary search to find the FlowBlock with matching index
References FlowBlock::getIndex().
|
inline |
Find the FlowBlock matching the given index.
| index | is the given index |
Referenced by BlockEdge::restoreXml().
|
private |
1.8.11