Skip to content

Commit 1393bf3

Browse files
committed
Fix: Crash on exit if TCP_DIRECT connection provider is not registered
Make ConnectionProviderRegistry::Deregister handle calling WzConnectionProvider::shutdown()
1 parent 26af8b7 commit 1393bf3

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

lib/netplay/connection_provider_registry.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,5 +53,14 @@ void ConnectionProviderRegistry::Register(ConnectionProviderType pt)
5353

5454
void ConnectionProviderRegistry::Deregister(ConnectionProviderType pt)
5555
{
56-
registeredProviders_.erase(pt);
56+
const auto it = registeredProviders_.find(pt);
57+
if (it == registeredProviders_.end())
58+
{
59+
return;
60+
}
61+
if (it->second)
62+
{
63+
it->second->shutdown();
64+
}
65+
registeredProviders_.erase(it);
5766
}

lib/netplay/netplay.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1606,7 +1606,6 @@ int NETshutdown()
16061606
}
16071607
NetPlay.MOTD = nullptr;
16081608
NETdeleteQueue();
1609-
ConnectionProviderRegistry::Instance().Get(ConnectionProviderType::TCP_DIRECT).shutdown();
16101609
ConnectionProviderRegistry::Instance().Deregister(ConnectionProviderType::TCP_DIRECT);
16111610

16121611
// Reset net usage statistics.

0 commit comments

Comments
 (0)