New wxHashTable implementation when wxUSE_STL == 1. Replaces
the old implementation based upon wxHashMap. Removed support for wxHashTable in wxHashMap. Rationale: using wxHashMap for wxHashTable implementation required special support in wxHashMap. This precluded using STL-provided hash_map to implement wxHashMap. This new implementation does not use keyed wxList interface and should be almost totally compatible with the old non-STL wxHashTable. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24638 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -70,7 +70,6 @@ protected:
|
||||
static void CopyHashTable( _wxHashTable_NodeBase** srcTable,
|
||||
size_t srcBuckets, _wxHashTableBase2* dst,
|
||||
_wxHashTable_NodeBase** dstTable,
|
||||
size_t dstBuckets,
|
||||
BucketFromNode func, ProcessNode proc );
|
||||
|
||||
static void** AllocTable( size_t sz )
|
||||
@@ -298,19 +297,6 @@ protected: \
|
||||
\
|
||||
return node; \
|
||||
} \
|
||||
void CreateNodeLast( const value_type& value ) \
|
||||
{ \
|
||||
size_t bucket = m_hasher( m_getKey(value) ) % m_tableBuckets; \
|
||||
Node* curr = m_table[bucket], \
|
||||
* next = m_table[bucket]; \
|
||||
while( next ) { curr = next; next = next->m_next(); } \
|
||||
Node** ptr = curr ? (Node**)&curr->m_nxt : &m_table[bucket]; \
|
||||
*ptr = new Node( value ); \
|
||||
/* must be after the node is inserted */ \
|
||||
++m_items; \
|
||||
if( SHOULD_GROW( m_tableBuckets, m_items ) ) \
|
||||
ResizeTable( m_tableBuckets ); \
|
||||
} \
|
||||
void CreateNode( const value_type& value ) \
|
||||
{\
|
||||
CreateNode(value, m_hasher( m_getKey(value) ) % m_tableBuckets ); \
|
||||
@@ -358,7 +344,7 @@ protected: \
|
||||
m_tableBuckets = newSize; \
|
||||
\
|
||||
CopyHashTable( (_wxHashTable_NodeBase**)srcTable, srcBuckets, \
|
||||
this, (_wxHashTable_NodeBase**)m_table, newSize, \
|
||||
this, (_wxHashTable_NodeBase**)m_table, \
|
||||
(BucketFromNode)GetBucketForNode,\
|
||||
(ProcessNode)&DummyProcessNode ); \
|
||||
free(srcTable); \
|
||||
@@ -370,7 +356,7 @@ protected: \
|
||||
ResizeTable( ht.size() ); \
|
||||
CopyHashTable( (_wxHashTable_NodeBase**)ht.m_table, ht.m_tableBuckets,\
|
||||
(_wxHashTableBase2*)this, \
|
||||
(_wxHashTable_NodeBase**)m_table, m_tableBuckets, \
|
||||
(_wxHashTable_NodeBase**)m_table, \
|
||||
(BucketFromNode)GetBucketForNode, \
|
||||
(ProcessNode)CopyNode ); \
|
||||
} \
|
||||
|
Reference in New Issue
Block a user