From 05abbd149db422fcdedc5ed8ef2a928b7d068f23 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 22 Apr 2021 22:27:08 +0200 Subject: [PATCH] Use std::string::rfind to match string prefix. --- src/mc/inspect/mc_dwarf.cpp | 5 +---- src/xbt/backtrace.cpp | 5 ++--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/mc/inspect/mc_dwarf.cpp b/src/mc/inspect/mc_dwarf.cpp index 90277e10f2..48261b0958 100644 --- a/src/mc/inspect/mc_dwarf.cpp +++ b/src/mc/inspect/mc_dwarf.cpp @@ -30,8 +30,6 @@ #include #include -#include - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_dwarf, mc, "DWARF processing"); /** @brief The default DW_TAG_lower_bound for a given DW_AT_language. @@ -473,8 +471,7 @@ static void MC_dwarf_add_members(const simgrid::mc::ObjectInformation* /*info*/, member.name = name; // Those base names are used by GCC and clang for virtual table pointers // respectively ("__vptr$ClassName", "__vptr.ClassName"): - if (boost::algorithm::starts_with(member.name, "__vptr$") || - boost::algorithm::starts_with(member.name, "__vptr.")) + if (member.name.rfind("__vptr$", 0) == 0 || member.name.rfind("__vptr.", 0) == 0) member.flags |= simgrid::mc::Member::VIRTUAL_POINTER_FLAG; // A cleaner solution would be to check against the type: // --- diff --git a/src/xbt/backtrace.cpp b/src/xbt/backtrace.cpp index 7324dca9dd..ec5c0a0059 100644 --- a/src/xbt/backtrace.cpp +++ b/src/xbt/backtrace.cpp @@ -10,7 +10,6 @@ #include #include -#include #include #include #include @@ -49,8 +48,8 @@ public: for (boost::stacktrace::frame const& frame : st) { const std::string frame_name = frame.name(); if (print) { - if (boost::starts_with(frame_name, "simgrid::xbt::MainFunction") || - boost::starts_with(frame_name, "simgrid::kernel::context::Context::operator()()")) + if (frame_name.rfind("simgrid::xbt::MainFunction", 0) == 0 || + frame_name.rfind("simgrid::kernel::context::Context::operator()()", 0) == 0) break; ss << " -> " << frame_count++ << "# " << frame << "\n"; if (frame_name == "main") -- 2.20.1