typedef ValueT mapped_type;
typedef std::pair<KeyT, ValueT> value_type;
- ValueMap(const ValueMap& Other) : Map(Other.Map), Data(Other.Data) {}
+ ValueMap(const ValueMap& Other) : Map(Other.Map), Data(Other.Data) {
+ // Each ValueMapCVH key contains a pointer to the containing ValueMap.
+ // The keys in the new map need to point to the new map, not Other.
+ for (typename MapT::iterator I = Map.begin(), E = Map.end(); I != E; ++I)
+ I->first.Map = this;
+ }
explicit ValueMap(unsigned NumInitBuckets = 64)
: Map(NumInitBuckets), Data() {}