+ size_t bucket = ( m_keyType == wxKEY_INTEGER ?
+ node->m_key.integer :
+ MakeKey( *node->m_key.string ) ) % m_size;
+
+ if( node->GetNext() == node )
+ {
+ // single-node chain (common case)
+ m_table[bucket] = NULL;
+ }
+ else
+ {
+ Node *start = m_table[bucket], *curr;
+ Node* prev = start;
+
+ for( curr = prev->GetNext(); curr != node;
+ prev = curr, curr = curr->GetNext() ) ;
+
+ DoUnlinkNode( bucket, node, prev );
+ }