From b0a0926d3513e3cfa6c55f0e561624b5280017c0 Mon Sep 17 00:00:00 2001 From: oldmud0 Date: Sun, 6 Jun 2021 23:39:19 -0500 Subject: [PATCH 1/2] Fix minor memory leak with configini --- src/aoapplication.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp index 00175e5..dd8d9ae 100644 --- a/src/aoapplication.cpp +++ b/src/aoapplication.cpp @@ -26,6 +26,7 @@ AOApplication::~AOApplication() destruct_lobby(); destruct_courtroom(); delete discord; + delete configini; } void AOApplication::construct_lobby() From 7cbd343ce9647d2ae73e947b300bdcdd67828058 Mon Sep 17 00:00:00 2001 From: oldmud0 Date: Sun, 6 Jun 2021 23:42:51 -0500 Subject: [PATCH 2/2] Fix excess calls to arup_append According to profiling results, arup_append was being called around 90k times (!!) because it had been placed in the inner for loop. That's (tracks * areas)^2. Yikes! --- src/packet_distribution.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index dfe28f4..bcbc667 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -405,10 +405,6 @@ void AOApplication::server_packet_received(AOPacket *p_packet) } } - for (int area_n = 0; area_n < areas; area_n++) { - w_courtroom->arup_append(0, "Unknown", "Unknown", "Unknown"); - } - int total_loading_size = char_list_size * 2 + evidence_list_size + music_list_size; int loading_value = int( @@ -418,6 +414,10 @@ void AOApplication::server_packet_received(AOPacket *p_packet) w_lobby->set_loading_value(loading_value); } + for (int area_n = 0; area_n < areas; area_n++) { + w_courtroom->arup_append(0, "Unknown", "Unknown", "Unknown"); + } + send_server_packet(new AOPacket("RD#%")); } else if (header == "FM") // Fetch music ONLY