From d15605f0ec704a59399fb71e6c145c72c4a9f1b0 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Wed, 6 Mar 2019 17:11:02 +0100 Subject: [PATCH] [sonar] Use std::function. --- include/xbt/backtrace.hpp | 2 +- src/xbt/backtrace.cpp | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/xbt/backtrace.hpp b/include/xbt/backtrace.hpp index 220ed64a67..92199c8d99 100644 --- a/include/xbt/backtrace.hpp +++ b/include/xbt/backtrace.hpp @@ -25,7 +25,7 @@ namespace xbt { * * Return the origin string if this fails. */ -XBT_PUBLIC std::unique_ptr demangle(const char* name); +XBT_PUBLIC std::unique_ptr> demangle(const char* name); class BacktraceImpl; /** A backtrace diff --git a/src/xbt/backtrace.cpp b/src/xbt/backtrace.cpp index 600b7e8055..c2ceee4268 100644 --- a/src/xbt/backtrace.cpp +++ b/src/xbt/backtrace.cpp @@ -42,17 +42,18 @@ void xbt_backtrace_display_current() namespace simgrid { namespace xbt { -std::unique_ptr demangle(const char* name) +std::unique_ptr> demangle(const char* name) { #ifdef __GXX_ABI_VERSION int status; - auto res = std::unique_ptr(abi::__cxa_demangle(name, nullptr, nullptr, &status), &std::free); + auto res = std::unique_ptr>(abi::__cxa_demangle(name, nullptr, nullptr, &status), + &std::free); if (res != nullptr) return res; // We did not manage to resolve this. Probably because this is not a mangled symbol: #endif // Return the symbol: - return std::unique_ptr(xbt_strdup(name), &std::free); + return std::unique_ptr>(xbt_strdup(name), &xbt_free_f); } class BacktraceImpl { -- 2.20.1