This commit is contained in:
Alexander Kuzmenkov 2020-02-04 16:31:15 +03:00
parent cbcb7895e4
commit 7b898ec871
3 changed files with 11 additions and 6 deletions

View File

@ -73,7 +73,7 @@ public:
for (size_t i = 0; i < input_rows_count; ++i)
{
StringRef source = column_concrete->getDataAt(i);
auto demangled = try_demangle(source.data);
auto demangled = tryDemangle(source.data);
if (demangled.data)
{
result_column->insertDataWithTerminatingZero(demangled.data, demangled.size);

View File

@ -38,4 +38,4 @@ struct DemangleResult
}
};
DemangleResult try_demangle(const char * name);
DemangleResult tryDemangle(const char * name);

View File

@ -10,6 +10,11 @@
#if _MSC_VER || MEMORY_SANITIZER
DemangleResult tryDemangle(const char * name)
{
return DemangleResult{};
}
std::string demangle(const char * name, int & status)
{
status = 0;
@ -21,22 +26,22 @@ std::string demangle(const char * name, int & status)
#include <stdlib.h>
#include <cxxabi.h>
static DemangleResult try_demangle(const char * name, int & status)
static DemangleResult tryDemangle(const char * name, int & status)
{
DemangleResult result;
result.data = abi::__cxa_demangle(name, nullptr, &result.size, &status);
return result;
}
DemangleResult try_demangle(const char * name)
DemangleResult tryDemangle(const char * name)
{
int status = 0;
return try_demangle(name, status);
return tryDemangle(name, status);
}
std::string demangle(const char * name, int & status)
{
auto result = try_demangle(name, status);
auto result = tryDemangle(name, status);
if (result.data)
{
return std::string(result.data, result.size - 1);