diff --git a/src/symbols/symbols_with_libdwarf.cpp b/src/symbols/symbols_with_libdwarf.cpp index 33952cf..aa41488 100644 --- a/src/symbols/symbols_with_libdwarf.cpp +++ b/src/symbols/symbols_with_libdwarf.cpp @@ -52,16 +52,17 @@ namespace libdwarf { } // flatten trace with inlines - std::vector flatten_inlines(const std::vector& trace) { + std::vector flatten_inlines(std::vector& trace) { std::vector final_trace; for(const auto& entry : trace) { // most recent call first if(!entry.inlines.empty()) { // insert in reverse order - for(auto iter = entry.inlines.rbegin(); iter != entry.inlines.rend(); ++iter){ - auto& val = *iter; //const stacktrace_frame& - final_trace.emplace_back(val); - } + final_trace.insert( + final_trace.end(), + std::make_move_iterator(entry.inlines.rbegin()), + std::make_move_iterator(entry.inlines.rend()) + ); } final_trace.push_back(std::move(entry.frame)); if(!entry.inlines.empty()) {