#include <disassemblerhashes.h>
Public Member Functions | |
nodeHash (void) | |
~nodeHash (void) | |
void | clear (void) |
delete all nodes and empty table for new usage | |
const disassemblerNode_c * | insert (disassemblerNode_c *n) |
add a new node. | |
bool | contains (const disassemblerNode_c *n) const |
check, if a node is in the hashtable | |
Private Member Functions | |
nodeHash (const nodeHash &) | |
void | operator= (const nodeHash &) |
Private Attributes | |
unsigned long | tab_size |
current table size | |
unsigned long | tab_entries |
current number of entries | |
disassemblerNode_c ** | tab |
the hashtable |
The nodes will not become owned by the hashtable, but the table will use the reference counting system of the node
nodeHash::nodeHash | ( | void | ) |
References tab, tab_entries, and tab_size.
nodeHash::nodeHash | ( | const nodeHash & | ) | [private] |
void nodeHash::clear | ( | void | ) |
delete all nodes and empty table for new usage
References disassemblerNode_c::decRefCount(), disassemblerNode_c::next, tab, tab_entries, and tab_size.
Referenced by disassembler_0_c::disassemble_rec(), and ~nodeHash().
bool nodeHash::contains | ( | const disassemblerNode_c * | n | ) | const |
check, if a node is in the hashtable
References disassemblerNode_c::hash(), disassemblerNode_c::next, tab, and tab_size.
const disassemblerNode_c * nodeHash::insert | ( | disassemblerNode_c * | n | ) |
add a new node.
Returns the node pointer of the identical node found or 0
References disassemblerNode_c::getWaylength(), disassemblerNode_c::hash(), disassemblerNode_c::incRefCount(), disassemblerNode_c::next, disassemblerNode_c::replaceNode(), tab, tab_entries, and tab_size.
Referenced by disassembler_0_c::disassemble_rec().
void nodeHash::operator= | ( | const nodeHash & | ) | [private] |
disassemblerNode_c** nodeHash::tab [private] |
unsigned long nodeHash::tab_entries [private] |
unsigned long nodeHash::tab_size [private] |