summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qlocalserver_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2019-10-29 16:24:41 +0100
committerLars Knoll <lars.knoll@qt.io>2019-10-30 11:52:33 +0100
commit5df1cf38e3d400fe1fb175c913f759b7fa9b68a4 (patch)
tree19aeb57f513312314cc9bf005f158a831c438a39 /src/network/socket/qlocalserver_p.h
parentbc4e7aecc0db534ad4e52691f70c98f5ad643230 (diff)
Ensure we don't move the Listener struct around
We're passing a pointer into the Listener struct to Windows API, so ensure we keep that pointer valid even when our container changes. Change-Id: I32b8de8cd959ecc7f574063451ed7238b69e7125 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/network/socket/qlocalserver_p.h')
-rw-r--r--src/network/socket/qlocalserver_p.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/network/socket/qlocalserver_p.h b/src/network/socket/qlocalserver_p.h
index 92616e59ce..f331a3f10d 100644
--- a/src/network/socket/qlocalserver_p.h
+++ b/src/network/socket/qlocalserver_p.h
@@ -99,15 +99,18 @@ public:
QMap<quintptr, QTcpSocket*> socketMap;
#elif defined(Q_OS_WIN)
struct Listener {
- HANDLE handle;
+ Listener() = default;
+ HANDLE handle = nullptr;
OVERLAPPED overlapped;
- bool connected;
+ bool connected = false;
+ private:
+ Q_DISABLE_COPY(Listener)
};
void setError(const QString &function);
bool addListener();
- QList<Listener> listeners;
+ std::vector<std::unique_ptr<Listener>> listeners;
HANDLE eventHandle;
QWinEventNotifier *connectionEventNotifier;
#else