Please sign in to comment.
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.
- Loading branch information...
Showing with 48 additions and 29 deletions.
- +8 −3 Source/Core/Core/NetPlayClient.cpp
- +2 −2 Source/Core/DolphinQt/MainWindow.cpp
- +13 −4 Source/Core/DolphinQt/NetPlay/MD5Dialog.cpp
- +14 −9 Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
- +2 −2 Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp
- +4 −4 Source/Core/DolphinQt/Settings.cpp
- +5 −5 Source/Core/DolphinQt/Settings.h