> On Feb 24, 2019, at 11:55 AM, Adrien Destugues <pulkoma...@pulkomandy.tk> > wrote: > > On Sun, Feb 24, 2019 at 10:52:53AM -0800, Sam Weinig wrote: >> Hi Adrien, >> >> Would you mind adding the compiler output when this happens? I’d like to see >> exactly what the error you are seeing is. > > Sorry, here is the compiler output: > http://paste.debian.net/1069971 > > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp: In > static member function 'static bool > WebKit::NetworkResourceLoadParameters::decode(IPC::Decoder&, > WebKit::NetworkResourceLoadParameters&)': > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:41: > error: no matching function for call to > 'IPC::Decoder::decode(WTF::ProcessID&)' > if (!decoder.decode(result.parentPID)) > ^ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:80:10: note: candidate: bool > IPC::Decoder::decode(bool&) <near match> > bool decode(bool&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:80:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'bool&' to an rvalue of > type 'bool' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:82:10: note: candidate: bool > IPC::Decoder::decode(uint8_t&) <near match> > bool decode(uint8_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:82:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'uint8_t& {aka unsigned > char&}' to an rvalue of type 'uint8_t {aka unsigned char}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:84:10: note: candidate: bool > IPC::Decoder::decode(uint16_t&) <near match> > bool decode(uint16_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:84:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'uint16_t& {aka short > unsigned int&}' to an rvalue of type 'uint16_t {aka short unsigned int}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:86:10: note: candidate: bool > IPC::Decoder::decode(uint32_t&) <near match> > bool decode(uint32_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:86:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'uint32_t& {aka > unsigned int&}' to an rvalue of type 'uint32_t {aka unsigned int}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:88:10: note: candidate: bool > IPC::Decoder::decode(uint64_t&) <near match> > bool decode(uint64_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:88:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'uint64_t& {aka long > long unsigned int&}' to an rvalue of type 'uint64_t {aka long long unsigned > int}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:90:10: note: candidate: bool > IPC::Decoder::decode(int16_t&) <near match> > bool decode(int16_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:90:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'int16_t& {aka short > int&}' to an rvalue of type 'int16_t {aka short int}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:92:10: note: candidate: bool > IPC::Decoder::decode(int32_t&) <near match> > bool decode(int32_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:92:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'int32_t& {aka int&}' > to an rvalue of type 'int32_t {aka int}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:94:10: note: candidate: bool > IPC::Decoder::decode(int64_t&) <near match> > bool decode(int64_t&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:94:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'int64_t& {aka long > long int&}' to an rvalue of type 'int64_t {aka long long int}' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:96:10: note: candidate: bool > IPC::Decoder::decode(float&) <near match> > bool decode(float&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:96:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'float&' to an rvalue > of type 'float' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:98:10: note: candidate: bool > IPC::Decoder::decode(double&) <near match> > bool decode(double&); > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:98:10: note: conversion of > argument 1 would be ill-formed: > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:117:32: > error: cannot bind non-const lvalue reference of type 'double&' to an rvalue > of type 'double' > if (!decoder.decode(result.parentPID)) > ~~~~~~~^~~~~~~~~ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:30:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/Decoder.h:102:10: note: candidate: > template<class E> std::enable_if_t<std::is_enum<_Tp>::value, bool> > IPC::Decoder::decode(E&) > auto decode(E& e) -> std::enable_if_t<std::is_enum<E>::value, bool> > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:102:10: note: template argument > deduction/substitution failed: > ../../Source/WebKit/Platform/IPC/Decoder.h:148:10: note: candidate: > template<class T, std::enable_if_t<((! std::is_enum<_Tp>::value) && > IPC::UsesLegacyDecoder<U>::value)>* <anonymous> > bool > IPC::Decoder::decode(T&) > bool decode(T& t) > ^~~~~~ > ../../Source/WebKit/Platform/IPC/Decoder.h:148:10: note: template argument > deduction/substitution failed: > ../../Source/WebKit/Platform/IPC/Decoder.h:147:102: note: invalid template > non-type parameter > template<typename T, std::enable_if_t<!std::is_enum<T>::value && > UsesLegacyDecoder<T>::value>* = nullptr> > > ^~~~~~~ > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:7:0: > ../../Source/WebKit/NetworkProcess/NetworkSession.cpp: In static member > function 'static WTF::Ref<WebKit::NetworkSession> > WebKit::NetworkSession::create(WebKit::NetworkProcess&, > WebKit::NetworkSessionCreationParameters&&)': > ../../Source/WebKit/NetworkProcess/NetworkSession.cpp:59:1: warning: no > return statement in function returning non-void [-Wreturn-type] > } > ^ > In file included from > ../../Source/WebKit/NetworkProcess/Downloads/DownloadID.h:29:0, > from > ../../Source/WebKit/NetworkProcess/Downloads/Download.h:28, > from > ../../Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp:29, > from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-2.cpp:1: > ../../Source/WebKit/Platform/IPC/ArgumentCoder.h: In instantiation of 'static > void IPC::ArgumentCoder< <template-parameter-1-1> >::encode(IPC::Encoder&, > const T&) [with T = long int]': > ../../Source/WebKit/Platform/IPC/Encoder.h:71:105: required from 'void > IPC::Encoder::encode(T&&) [with T = const long int&; std::enable_if_t<(! > std::is_enum<typename std::remove_const<typename > std::remove_reference<_From>::type>::type>::value)>* <anonymous> = 0]' > ../../Source/WebKit/Platform/IPC/Encoder.h:84:9: required from > 'IPC::Encoder& IPC::Encoder::operator<<(T&&) [with T = const long int&; > std::enable_if_t<(! std::is_enum<_Tp>::value)>* <anonymous> = 0]' > ../../Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:39:16: > required from here > ../../Source/WebKit/Platform/IPC/ArgumentCoder.h:90:11: error: request for > member 'encode' in 't', which is of non-class type 'const long int' > t.encode(encoder); > ~~^~~~~~ > [1034/1174] Building CXX object > Source/WebKit/CMakeFiles/WebKit.dir/__/__/DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-1.cpp.o > In file included from > DerivedSources/WebKit/unified-sources/UnifiedSource-72468c22-1.cpp:5:0: > ../../Source/WebKit/NetworkProcess/NetworkDataTask.cpp: In static member > function 'static WTF::Ref<WebKit::NetworkDataTask> > WebKit::NetworkDataTask::create(WebKit::NetworkSession&, > WebKit::NetworkDataTaskClient&, const WebKit::NetworkLoadParameters&)': > ../../Source/WebKit/NetworkProcess/NetworkDataTask.cpp:62:1: warning: control > reaches end of non-void function [-Wreturn-type] > } > ^ > _
Thanks, I think a nice solution that fits with the general WebKit model might be for you define a WTF::ProcessID specifically for Haiku that is precisely size integer type and add toProcessID() and toPid() helper functions to perform the casts to/from platform types (these casting functions would be used by all platforms. If possible, the helper functions should assert (statically when appropriate) that the conversion is lossless. - Sam > ______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > https://lists.webkit.org/mailman/listinfo/webkit-dev _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev