From fe28a051d533bd34681c6306deab5b93b13dc5e9 Mon Sep 17 00:00:00 2001 From: iTrooz Date: Sat, 16 Nov 2024 23:37:20 +0100 Subject: [PATCH] make MCResolver a dynamic object so it doesnt get deleted before the callback See https://discord.com/channels/1031648380885147709/1031823065937629267/1307471566166167696 --- launcher/ui/pages/instance/ServersPage.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/launcher/ui/pages/instance/ServersPage.cpp b/launcher/ui/pages/instance/ServersPage.cpp index fa8d6c891..100f92386 100644 --- a/launcher/ui/pages/instance/ServersPage.cpp +++ b/launcher/ui/pages/instance/ServersPage.cpp @@ -140,8 +140,9 @@ class ServerPingTask : public Task { virtual void executeTask() override { qDebug() << "Querying status of " << m_server.m_address; auto [domain, port] = m_server.splitAddress(); - MCResolver resolver(nullptr, domain, port); - QObject::connect(&resolver, &MCResolver::succeed, [&](QString ip, int port) { + MCResolver *resolver = new MCResolver(nullptr, domain, port); + QObject::connect(resolver, &MCResolver::succeed, [=](QString ip, int port) { + resolver->deleteLater(); qDebug() << "Resolved Addresse for" << domain << ": " << ip << ":" << port; McClient client(nullptr, domain, ip, port); int online = client.getOnlinePlayers(); @@ -149,7 +150,7 @@ class ServerPingTask : public Task { client.close(); }); - resolver.ping(); + resolver->ping(); } private: