New issue
Advanced search Search tips

Issue 876331 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Unable to copy/move construct a PersistentHeapHashMap from a HeapHashMap

Project Member Reported by smcgruer@chromium.org, Aug 21

Issue description

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
 

Sign in to add a comment