From cb92c9fdfa2332fa9d263695e59f4ac3ed8ac4d8 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Sun, 11 Feb 2024 15:59:56 -0600 Subject: [PATCH] Small optimization to reduce unnecessary frame copying --- src/symbols/symbols_with_libdwarf.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index b6c6b4b..e09981a 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -1158,9 +1159,13 @@ namespace libdwarf { // most recent call first if(!entry.inlines.empty()) { // insert in reverse order - final_trace.insert(final_trace.end(), entry.inlines.rbegin(), entry.inlines.rend()); + final_trace.insert( + final_trace.end(), + std::make_move_iterator(entry.inlines.rbegin()), + std::make_move_iterator(entry.inlines.rend()) + ); } - final_trace.push_back(entry.frame); + final_trace.push_back(std::move(entry.frame)); if(!entry.inlines.empty()) { // rotate line info due to quirk of how dwarf stores this stuff // inclusive range