On Apr 8, 2009, at 9:02 PM, ZHOU Xiao-bo wrote:

it's not about memory reallocation or element shift, but it's because the
member variable 'm_table' in WTF::HashTable::iterator may become NULL
if there is only one entry in the HashMap before you call remove( olditer ).

This is a misunderstanding.

The m_value data member in HashTable::iterator is a debugging mechanism, to make debug versions of the software immediately drop into the debugger in cases where a release version would usually work, but occasionally fail. It turns hard-to-find subtle bugs with incorrect use of hash table iterators into bugs you can easily immediately find.

m_table becomes 0 any time the hash table changes in a way that invalidates iterators; it has nothing to do with the number of entries in the table.

    -- Darin

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to