From 33bcdea06f38dfecf16c6ec8c1ba9f161749f5dd Mon Sep 17 00:00:00 2001 From: MarcEricMartel Date: Thu, 7 Dec 2023 13:34:58 -0500 Subject: [PATCH] IT'S LEAKING! --- SQCSim-srv/server.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/SQCSim-srv/server.cpp b/SQCSim-srv/server.cpp index d749bb4..622ab6c 100644 --- a/SQCSim-srv/server.cpp +++ b/SQCSim-srv/server.cpp @@ -224,9 +224,9 @@ void Server::Run() { std::vector bullets, outbox_bullets; std::vector netbull; - Chat* startchat; + Chat* startchat = new Chat(); startchat->src_id = 0; - char startmess[] = "How would YOU like to die today, motherfuckers?"; + char startmess[] = "How would -YOU- like to die today, motherfuckers?"; strcpy(startchat->mess, 140, startmess); @@ -244,7 +244,7 @@ void Server::Run() { sync_acc -= 1000; --timer; std::string str = "Timer: "; - Log(str.append(std::to_string(timer).append(" SyncAcc: ").append(std::to_string(sync_acc))), false, false); + Log(str.append(std::to_string(timer)), false, false); } last = tstamp; @@ -296,7 +296,7 @@ void Server::Run() { } else { for (auto& chmo : conn->ChunkDiffs) - chunkdiffs.emplace_back(chmo); + chunkdiffs.emplace_back(std::move(chmo)); conn->ChunkDiffs.clear(); for (auto& bull : conn->Bullets) { @@ -308,7 +308,7 @@ void Server::Run() { nbul->id = key; nbul->tstamp = tstamp; - netbull.emplace_back(nbul); + netbull.emplace_back(std::move(nbul)); } conn->Bullets.clear(); } @@ -333,10 +333,11 @@ void Server::Run() { ChunkMod* cmod = nullptr; if (bull->Update(m_world, (1. / 60.), 20, m_players, &cmod)) { if (cmod) - chunkdiffs.emplace_back(cmod); + chunkdiffs.emplace_back(std::move(cmod)); outbox_bullets.emplace_back(std::move(bull)); } } + netbull.clear(); for (auto& chat : chatlog) { Log(chat->mess, false, false); @@ -344,16 +345,18 @@ void Server::Run() { sendPackTo(m_sock_udp, chat, &m_buf, conn->getAddr()); delete chat; } + chatlog.clear(); for (auto& chmo : chunkdiffs) { for (auto& [key, conn] : m_conns) sendPackTo(m_sock_udp, chmo, &m_buf, conn->getAddr()); delete chmo; } - - netbull.clear(); chunkdiffs.clear(); - chatlog.clear(); + + for (auto& bull : outbox_bullets) + delete bull; + outbox_bullets.clear(); } Chat end;