Boost logo

Boost :

From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2006-04-04 02:09:56


Hi,

the file hash_map.hpp has a bug, caught by STLPort checked-STL.
The clear member-function is:

  // Remove all entries from the map.
  void clear()
  {
    // Initialise all buckets to empty.
    for (size_t i = 0; i < num_buckets; ++i)
      buckets_[i].first = buckets_[i].last = values_.end();

    // Clear the values.
    values_.clear();
  }

But the clear member function of values_invalidates all iterators. So,
the values recorded in the buckets are all invalidated. Which is
caught in a later call to insert.

I've swapped the clear call above the for and everything is fine here.

best regards,

--
Felipe Magno de Almeida

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk