From 4eb3cf68b7bdb80df2934e9d9af49fc36060c69c Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 16 Nov 2020 08:49:01 +0100 Subject: [PATCH] LibDebug: Avoid creating the String("serenity/") a bazillion times We were creating and destroying this string twice for every LineInfo. That's a lot of malloc() and free() during UE startup. --- Libraries/LibDebug/DebugInfo.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Libraries/LibDebug/DebugInfo.cpp b/Libraries/LibDebug/DebugInfo.cpp index 76461285ee..7822c30cb8 100644 --- a/Libraries/LibDebug/DebugInfo.cpp +++ b/Libraries/LibDebug/DebugInfo.cpp @@ -115,12 +115,14 @@ void DebugInfo::prepare_lines() all_lines.append(program.lines()); } + String serenity_slash("serenity/"); + for (auto& line_info : all_lines) { String file_path = line_info.file; if (file_path.contains("Toolchain/") || file_path.contains("libgcc")) continue; - if (file_path.contains("serenity/")) { - auto start_index = file_path.index_of("serenity/").value() + String("serenity/").length(); + if (file_path.contains(serenity_slash)) { + auto start_index = file_path.index_of(serenity_slash).value() + serenity_slash.length(); file_path = file_path.substring(start_index, file_path.length() - start_index); } m_sorted_lines.append({ line_info.address, file_path, line_info.line });