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(), resolveBlock(), and sortlist.
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().
Referenced by findLevelBlock().
|
inline |
Find the FlowBlock matching the given index.
index | is the given index |
References findBlock(), and sortlist.
Referenced by BlockEdge::restoreXml().
|
private |
Construct a FlowBlock of the given type.
bt | is the block_type |
Referenced by createBlock().