/usr/include/c++/4.8/bits/unique_ptr.h: In instantiation of 'typename std::enable_if<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::unique_ptr<_Tp, _Dp>::_Pointer::type>, std::__not_<std::is_array<_Up> > >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _GdkEvent; _Ep = WTF::GPtrDeleter<_GdkEvent>; _Tp = _GdkEvent; _Dp = std::default_delete<_GdkEvent>; typename std::enable_if<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::unique_ptr<_Tp, _Dp>::_Pointer::type>, std::__not_<std::is_array<_Up> > >::value, std::unique_ptr<_Tp, _Dp>&>::type = std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> >&]': ../../Source/WTF/wtf/HashMap.h:162:24: required from 'static void WTF::HashMapTranslator<ValueTraits, HashFunctions>::translate(T&, U&&, V&&) [with T = WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > >; U = const unsigned int&; V = std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> >; ValueTraits = WTF::HashMap<unsigned int, std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >::KeyValuePairTraits; HashFunctions = WTF::IntHash<unsigned int>]' ../../Source/WTF/wtf/HashTable.h:858:91: required from 'WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::AddResult WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::add(T&&, Extra&&) [with HashTranslator = WTF::HashMapTranslator<WTF::HashMap<unsigned int, std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >::KeyValuePairTraits, WTF::IntHash<unsigned int> >; T = const unsigned int&; Extra = std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> >; Key = unsigned int; Value = WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > >; Extractor = WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > > >; HashFunctions = WTF::IntHash<unsigned int>; Traits = WTF::HashMap<unsigned int, std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >::KeyValuePairTraits; KeyTraits = WTF::HashTraits<unsigned int>; WTF::HashTable<Key, Value, Extractor, HashFunctions, Traits, KeyTraits>::AddResult = WTF::HashTableAddResult<WTF::HashTableIterator<unsigned int, WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > > >, WTF::IntHash<unsigned int>, WTF::HashMap<unsigned int, std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >::KeyValuePairTraits, WTF::HashTraits<unsigned int> > >]' ../../Source/WTF/wtf/HashMap.h:282:130: required from 'WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::AddResult WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::inlineAdd(K&&, V&&) [with K = const unsigned int&; V = std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> >; KeyArg = unsigned int; MappedArg = std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> >; HashArg = WTF::IntHash<unsigned int>; KeyTraitsArg = WTF::HashTraits<unsigned int>; MappedTraitsArg = WTF::HashTraits<std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >; WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::AddResult = WTF::HashTableAddResult<WTF::HashTableIterator<unsigned int, WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > > >, WTF::IntHash<unsigned int>, WTF::HashMap<unsigned int, std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >::KeyValuePairTraits, WTF::HashTraits<unsigned int> > >]' ../../Source/WTF/wtf/HashMap.h:310:50: required from 'WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::AddResult WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::add(const KeyType&, T&&) [with V = std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> >; KeyArg = unsigned int; MappedArg = std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> >; HashArg = WTF::IntHash<unsigned int>; KeyTraitsArg = WTF::HashTraits<unsigned int>; MappedTraitsArg = WTF::HashTraits<std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >; WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::AddResult = WTF::HashTableAddResult<WTF::HashTableIterator<unsigned int, WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > >, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<unsigned int, std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> > > >, WTF::IntHash<unsigned int>, WTF::HashMap<unsigned int, std::unique_ptr<_GdkEvent, WTF::GPtrDeleter<_GdkEvent> > >::KeyValuePairTraits, WTF::HashTraits<unsigned int> > >; WTF::HashMap<KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg>::KeyType = unsigned int]' ../../Source/WebCore/platform/gtk/GtkTouchContextHelper.cpp:42:53: required from here /usr/include/c++/4.8/bits/unique_ptr.h:206:18: error: no match for 'operator=' (operand types are 'std::unique_ptr<_GdkEvent, std::default_delete<_GdkEvent> >::deleter_type {aka std::default_delete<_GdkEvent>}' and 'WTF::GPtrDeleter<_GdkEvent>') get_deleter() = std::forward<_Ep>(__u.get_deleter()); ^ /usr/include/c++/4.8/bits/unique_ptr.h:206:18: note: candidates are: /usr/include/c++/4.8/bits/unique_ptr.h:54:12: note: std::default_delete<_GdkEvent>& std::default_delete<_GdkEvent>::operator=(const std::default_delete<_GdkEvent>&) struct default_delete ^ /usr/include/c++/4.8/bits/unique_ptr.h:54:12: note: no known conversion for argument 1 from 'WTF::GPtrDeleter<_GdkEvent>' to 'const std::default_delete<_GdkEvent>&' /usr/include/c++/4.8/bits/unique_ptr.h:54:12: note: std::default_delete<_GdkEvent>& std::default_delete<_GdkEvent>::operator=(std::default_delete<_GdkEvent>&&) /usr/include/c++/4.8/bits/unique_ptr.h:54:12: note: no known conversion for argument 1 from 'WTF::GPtrDeleter<_GdkEvent>' to 'std::default_delete<_GdkEvent>&&' The problem is that the HashMap is using a unique_ptr with the default deleter, so that when trying to move the unique_ptr the deleters don't match.
Created attachment 223242 [details] Patch
Comment on attachment 223242 [details] Patch Clearing flags on attachment: 223242 Committed r163460: <http://trac.webkit.org/changeset/163460>
All reviewed patches have been landed. Closing bug.