This came up in https://chromium-review.googlesource.com/c/chromium/src/+/1102883/5 (along with a few
Oilpan problems, so excuse the noise. Patchset 5 should be the correct place to look).
PersistentHeapHashMap is unable to be copy or move constructed from a HeapHashMap, which jbroman@ leads me to understand should work. I don't have a minimal repro (sorry!), but the code looks something like:
// In a header somewhere
using ActiveInterpolations = HeapVector<Member<Interpolation>, 1>;
using ActiveInterpolationsMap =
HeapHashMap<PropertyHandle, ActiveInterpolations>;
ActiveInterpolationsMap EffectStack::ActiveInterpolations(...) {
ActiveInterpolationsMap foo;
...
return foo;
}
// In the test.
PersistentHeapHashMap<PropertyHandle, ActiveInterpolations> interpolations;
interpolations = EffectStack::ActiveInterpolations(
&element->GetElementAnimations()->GetEffectStack(), nullptr, nullptr,
KeyframeEffect::kDefaultPriority);
../../third_party/blink/renderer/platform/heap/persistent.h:710:7: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'blink::ActiveInterpolationsMap' (aka 'HeapHashMap<blink::PropertyHandle, HeapVector<Member<blink::Interpolation>, 1> >') to 'blink::PersistentHeapHashMap<blink::PropertyHandle, blink::HeapVector<blink::Member<blink::Interpolation>, 1>, WTF::DefaultHash<blink::PropertyHandle>::Hash, WTF::HashTraits<blink::PropertyHandle>, WTF::HashTraits<blink::HeapVector<blink::Member<blink::Interpolation>, 1> > >' for 1st argument
class PersistentHeapHashMap
^
../../third_party/blink/renderer/platform/heap/persistent.h:710:7: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'blink::ActiveInterpolationsMap' (aka 'HeapHashMap<blink::PropertyHandle, HeapVector<Member<blink::Interpolation>, 1> >') to 'const blink::PersistentHeapHashMap<blink::PropertyHandle, blink::HeapVector<blink::Member<blink::Interpolation>, 1>, WTF::DefaultHash<blink::PropertyHandle>::Hash, WTF::HashTraits<blink::PropertyHandle>, WTF::HashTraits<blink::HeapVector<blink::Member<blink::Interpolation>, 1> > >' for 1st argument