[network/kdeconnect-kde] core/backends/lan: Reimplement deleteLater but checking that the socket wasn't updated
Albert Vaca Cintora <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit 1444ac40773c26801b1d152709a9ddcb1bfddae6 by Albert Vaca Cintora.
Committed on 15/08/2026 at 11:06.
Pushed by albertvaka into branch 'master'.
Reimplement deleteLater but checking that the socket wasn't updated
M +10 -2 core/backends/lan/landevicelink.cpp
https://invent.kde.org/network/kdeconnect-kde/-/commit/1444ac40773c26801b1d152709a9ddcb1bfddae6
diff --git a/core/backends/lan/landevicelink.cpp b/core/backends/lan/landevicelink.cpp
index 416057776..3bb561102 100644
--- a/core/backends/lan/landevicelink.cpp
+++ b/core/backends/lan/landevicelink.cpp
@@ -6,6 +6,8 @@
#include "landevicelink.h"
+#include <QTimer>
+
#include <KLocalizedString>
#include "backends/linkprovider.h"
@@ -29,14 +31,20 @@ LanDeviceLink::LanDeviceLink(const DeviceInfo &deviceInfo, LanLinkProvider *pare
void LanDeviceLink::reset(QSslSocket *socket)
{
if (m_socket) {
- disconnect(m_socket, &QAbstractSocket::disconnected, this, &QObject::deleteLater);
+ disconnect(m_socket, &QAbstractSocket::disconnected, this, nullptr);
delete m_socket;
}
m_socket = socket;
socket->setParent(this);
- connect(socket, &QAbstractSocket::disconnected, this, &QObject::deleteLater);
+ connect(socket, &QAbstractSocket::disconnected, this, [this, socket]() {
+ QTimer::singleShot(0, this, [this, socket]() {
+ if (m_socket == socket) {
+ delete this;
+ }
+ });
+ });
connect(socket, &QAbstractSocket::readyRead, this, &LanDeviceLink::dataReceived);
}