From 778e4e0ea7e0271fef8542b5647fd3f0394f514f Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 15 May 2022 11:51:20 +0200 Subject: [PATCH] Fix crash on NetworkPeer disposing --- Source/Engine/Networking/Drivers/ENetDriver.cpp | 1 - Source/Engine/Networking/NetworkPeer.cpp | 7 +++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Networking/Drivers/ENetDriver.cpp b/Source/Engine/Networking/Drivers/ENetDriver.cpp index 19ca4effb..0126dfd2a 100644 --- a/Source/Engine/Networking/Drivers/ENetDriver.cpp +++ b/Source/Engine/Networking/Drivers/ENetDriver.cpp @@ -80,7 +80,6 @@ void ENetDriver::Dispose() enet_deinitialize(); _peerMap.Clear(); - _peerMap = {}; _peer = nullptr; _host = nullptr; diff --git a/Source/Engine/Networking/NetworkPeer.cpp b/Source/Engine/Networking/NetworkPeer.cpp index 70e8d3d00..47b7cd02e 100644 --- a/Source/Engine/Networking/NetworkPeer.cpp +++ b/Source/Engine/Networking/NetworkPeer.cpp @@ -74,9 +74,10 @@ bool NetworkPeer::Initialize(const NetworkConfig& config) void NetworkPeer::Shutdown() { NetworkDriver->Dispose(); - Delete(NetworkDriver); + Delete(Config.NetworkDriver); DisposeMessageBuffers(); + Config.NetworkDriver = nullptr; NetworkDriver = nullptr; } @@ -223,7 +224,9 @@ NetworkPeer* NetworkPeer::CreatePeer(const NetworkConfig& config) void NetworkPeer::ShutdownPeer(NetworkPeer* peer) { - ASSERT(peer->IsValid()); + if (!peer) + return; + CHECK(peer->IsValid()); peer->Shutdown(); peer->HostId = -1; Peers.Remove(peer);