summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/MainWindow.cpp
diff options
context:
space:
mode:
authorTechjar <tecknojar@gmail.com>2018-07-12 20:37:12 -0400
committerTechjar <tecknojar@gmail.com>2018-07-21 00:04:14 -0400
commitcfeffdcf4208686d64d509f559272d64bbd5da70 (patch)
tree661c18a10d3ca134441d4082ddde1231a74cf7ad /Source/Core/DolphinQt/MainWindow.cpp
parenta21d536f99ae75f6f8f23870043ed1c8ab19c34d (diff)
Fix more segfaults on NetPlay quit
Basically everything here was race conditions in Qt callbacks, so I changed the client/server instances to std::shared_ptr and added null checks. It checks that the object exists in the callback, and the shared_ptr ensures it doesn't get destroyed until we're done with it. MD5 check would also cause a segfault if you quit without cancelling it first, which was pretty silly.
Diffstat (limited to 'Source/Core/DolphinQt/MainWindow.cpp')
-rw-r--r--Source/Core/DolphinQt/MainWindow.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp
index 30fdaef58f..f6f7ce1f9e 100644
--- a/Source/Core/DolphinQt/MainWindow.cpp
+++ b/Source/Core/DolphinQt/MainWindow.cpp
@@ -668,7 +668,7 @@ bool MainWindow::RequestStop()
const Core::State state = Core::GetState();
// Only pause the game, if NetPlay is not running
- bool pause = Settings::Instance().GetNetPlayClient() == nullptr;
+ bool pause = !Settings::Instance().GetNetPlayClient();
if (pause)
Core::SetState(Core::State::Paused);
@@ -1071,7 +1071,7 @@ bool MainWindow::NetPlayJoin()
std::string host_ip;
u16 host_port;
- if (Settings::Instance().GetNetPlayServer() != nullptr)
+ if (Settings::Instance().GetNetPlayServer())
{
host_ip = "127.0.0.1";
host_port = Settings::Instance().GetNetPlayServer()->GetPort();