diff options
author | Lars Knoll <lars.knoll@qt.io> | 2019-10-29 16:24:41 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2019-10-30 11:52:33 +0100 |
commit | 5df1cf38e3d400fe1fb175c913f759b7fa9b68a4 (patch) | |
tree | 19aeb57f513312314cc9bf005f158a831c438a39 /src/network/socket/qlocalserver_p.h | |
parent | bc4e7aecc0db534ad4e52691f70c98f5ad643230 (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.h | 9 |
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 |