Skip to content

Commit

Permalink
Fix: Crash on exit if TCP_DIRECT connection provider is not registered
Browse files Browse the repository at this point in the history
Make ConnectionProviderRegistry::Deregister handle calling WzConnectionProvider::shutdown()
  • Loading branch information
past-due committed Feb 2, 2025
1 parent 26af8b7 commit 1393bf3
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
11 changes: 10 additions & 1 deletion lib/netplay/connection_provider_registry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,14 @@ void ConnectionProviderRegistry::Register(ConnectionProviderType pt)

void ConnectionProviderRegistry::Deregister(ConnectionProviderType pt)
{
registeredProviders_.erase(pt);
const auto it = registeredProviders_.find(pt);
if (it == registeredProviders_.end())
{
return;
}
if (it->second)
{
it->second->shutdown();
}
registeredProviders_.erase(it);
}
1 change: 0 additions & 1 deletion lib/netplay/netplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1606,7 +1606,6 @@ int NETshutdown()
}
NetPlay.MOTD = nullptr;
NETdeleteQueue();
ConnectionProviderRegistry::Instance().Get(ConnectionProviderType::TCP_DIRECT).shutdown();
ConnectionProviderRegistry::Instance().Deregister(ConnectionProviderType::TCP_DIRECT);

// Reset net usage statistics.
Expand Down

0 comments on commit 1393bf3

Please sign in to comment.