[webkit-dev] Encoding and decoding ProcessID
Adrien Destugues
pulkomandy at pulkomandy.tk
Sun Feb 24 11:55:28 PST 2019
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]
}
^
More information about the webkit-dev
mailing list