X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fdebug%2Fdemangle.cpp;h=e41eb9ad79f32152b92503d33168c6dd1a43d337;hp=460410e49569f501ed4792929650c62068cdf243;hb=292aed8e23ea543b089d5f2a73000de4640befe7;hpb=0fa00d18f607f329d2b2a979e1d4339e233817fa diff --git a/source/debug/demangle.cpp b/source/debug/demangle.cpp index 460410e..e41eb9a 100644 --- a/source/debug/demangle.cpp +++ b/source/debug/demangle.cpp @@ -1,11 +1,7 @@ -/* $Id$ - -This file is part of libmspcore -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - +#include +#ifdef __GNUC__ #include +#endif #include "demangle.h" using namespace std; @@ -17,9 +13,16 @@ string demangle(const string &sym) { #ifdef __GNUC__ int status; - char *dm=abi::__cxa_demangle(sym.c_str(), 0, 0, &status); - string result(dm); + char *dm = abi::__cxa_demangle(sym.c_str(), 0, 0, &status); + + string result; + if(status==0) + result = dm; + else + result = sym; + free(dm); + return result; #else return sym;