diff --git a/source/network/NetClientSession.cpp b/source/network/NetClientSession.cpp index b84e854018..5cb995b4a0 100644 --- a/source/network/NetClientSession.cpp +++ b/source/network/NetClientSession.cpp @@ -42,8 +42,6 @@ CNetClientSession::CNetClientSession(CNetClient& client) : CNetClientSession::~CNetClientSession() { ENSURE(!m_LoopRunning); - - delete m_Stats; } bool CNetClientSession::Connect(const CStr& server, const u16 port, ENetHost* enetClient) @@ -70,9 +68,9 @@ bool CNetClientSession::Connect(const CStr& server, const u16 port, ENetHost* en return false; - m_Stats = new CNetStatsTable(*m_Server); + m_Stats = std::make_unique(*m_Server); if (CProfileViewer::IsInitialised()) - g_ProfileViewer.AddRootTable(m_Stats); + g_ProfileViewer.AddRootTable(m_Stats.get()); return true; } diff --git a/source/network/NetClientSession.h b/source/network/NetClientSession.h index 9c5d9a4ccb..2446c85666 100644 --- a/source/network/NetClientSession.h +++ b/source/network/NetClientSession.h @@ -126,7 +126,7 @@ private: std::unique_ptr m_Host; std::unique_ptr m_Server; - CNetStatsTable* m_Stats{nullptr}; + std::unique_ptr m_Stats; }; #endif // NETSESSION_H diff --git a/source/network/NetServer.cpp b/source/network/NetServer.cpp index dac493e78a..744efd4a9c 100644 --- a/source/network/NetServer.cpp +++ b/source/network/NetServer.cpp @@ -132,9 +132,9 @@ CNetServerWorker::CNetServerWorker(const bool continueSavedGame, std::uint16_t p throw std::runtime_error{"Failed to start server"}; } - m_Stats = new CNetStatsTable(); + m_Stats = std::make_unique(); if (CProfileViewer::IsInitialised()) - g_ProfileViewer.AddRootTable(m_Stats); + g_ProfileViewer.AddRootTable(m_Stats.get()); m_State = SERVER_STATE_PREGAME; @@ -165,9 +165,6 @@ CNetServerWorker::~CNetServerWorker() #endif // Clean up resources - - delete m_Stats; - for (const auto& session : m_Sessions) session->DisconnectNow(NDR_SERVER_SHUTDOWN); } diff --git a/source/network/NetServer.h b/source/network/NetServer.h index 9cce8fbf1c..50404f707c 100644 --- a/source/network/NetServer.h +++ b/source/network/NetServer.h @@ -266,7 +266,7 @@ private: std::unique_ptr m_Host; std::vector> m_Sessions; - CNetStatsTable* m_Stats{nullptr}; + std::unique_ptr m_Stats; NetServerState m_State{SERVER_STATE_PREGAME};