summaryrefslogtreecommitdiffstats
path: root/src/network
diff options
context:
space:
mode:
authorOliver Wolff <oliver.wolff@qt.io>2016-06-03 12:07:46 +0200
committerOliver Wolff <oliver.wolff@qt.io>2016-06-13 06:13:10 +0000
commit6fa74764d91e876162e2a992a4087aaf4082c001 (patch)
treecba62ea81a88d13e5858c3eac54c49c88d8b5faa /src/network
parentc111abe0605c95b50eb4362df2a68953f3e0da1e (diff)
WinRT: Avoid asserts in socket function with bool return values
There is no need for the functions to assert. By returning false they show that something went wrong and the error will be handled gracefully. Change-Id: Ib026adf5c6fb23b5e6b5598533caec3b3669220c Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Diffstat (limited to 'src/network')
-rw-r--r--src/network/socket/qnativesocketengine_winrt.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/network/socket/qnativesocketengine_winrt.cpp b/src/network/socket/qnativesocketengine_winrt.cpp
index 4547a0cbe4..58f0668854 100644
--- a/src/network/socket/qnativesocketengine_winrt.cpp
+++ b/src/network/socket/qnativesocketengine_winrt.cpp
@@ -321,11 +321,14 @@ bool QNativeSocketEngine::connectToHostByName(const QString &name, quint16 port)
Q_ASSERT_SUCCEEDED(hr);
d->socketState = QAbstractSocket::ConnectingState;
- hr = QEventDispatcherWinRT::runOnXamlThread([d]() {
- return d->connectOp->put_Completed(Callback<IAsyncActionCompletedHandler>(
+ QEventDispatcherWinRT::runOnXamlThread([d, &hr]() {
+ hr = d->connectOp->put_Completed(Callback<IAsyncActionCompletedHandler>(
d, &QNativeSocketEnginePrivate::handleConnectOpFinished).Get());
+ RETURN_OK_IF_FAILED("connectToHostByName: Could not register \"connectOp\" callback");
+ return S_OK;
});
- Q_ASSERT_SUCCEEDED(hr);
+ if (FAILED(hr))
+ return false;
return d->socketState == QAbstractSocket::ConnectedState;
}
@@ -865,20 +868,22 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc
case QAbstractSocket::TcpSocket: {
ComPtr<IStreamSocket> socket;
hr = RoActivateInstance(HString::MakeReference(RuntimeClass_Windows_Networking_Sockets_StreamSocket).Get(), &socket);
- Q_ASSERT_SUCCEEDED(hr);
+ RETURN_FALSE_IF_FAILED("createNewSocket: Could not create socket instance");
socketDescriptor = qintptr(socket.Detach());
break;
}
case QAbstractSocket::UdpSocket: {
ComPtr<IDatagramSocket> socket;
hr = RoActivateInstance(HString::MakeReference(RuntimeClass_Windows_Networking_Sockets_DatagramSocket).Get(), &socket);
- Q_ASSERT_SUCCEEDED(hr);
+ RETURN_FALSE_IF_FAILED("createNewSocket: Could not create socket instance");
socketDescriptor = qintptr(socket.Detach());
- hr = QEventDispatcherWinRT::runOnXamlThread([this]() {
- HRESULT hr = udpSocket()->add_MessageReceived(Callback<DatagramReceivedHandler>(this, &QNativeSocketEnginePrivate::handleNewDatagram).Get(), &connectionToken);
- return hr;
+ QEventDispatcherWinRT::runOnXamlThread([&hr, this]() {
+ hr = udpSocket()->add_MessageReceived(Callback<DatagramReceivedHandler>(this, &QNativeSocketEnginePrivate::handleNewDatagram).Get(), &connectionToken);
+ RETURN_OK_IF_FAILED("createNewSocket: Could not add \"message received\" callback")
+ return S_OK;
});
- Q_ASSERT_SUCCEEDED(hr);
+ if (FAILED(hr))
+ return false;
break;
}
default: