From a21be8711dc64e87375450ff65a3195979e15aed Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Mon, 22 Dec 2003 02:20:49 +0000 Subject: [PATCH] simplify --- .../src/archutils/Unix/CrashHandlerChild.cpp | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/stepmania/src/archutils/Unix/CrashHandlerChild.cpp b/stepmania/src/archutils/Unix/CrashHandlerChild.cpp index e6ac2b9d1e..71cab922a2 100644 --- a/stepmania/src/archutils/Unix/CrashHandlerChild.cpp +++ b/stepmania/src/archutils/Unix/CrashHandlerChild.cpp @@ -60,34 +60,34 @@ void BacktraceNames::Demangle() void BacktraceNames::Demangle() { - /* demangle the name using __cxa_demangle() if needed */ - if (Symbol.substr(0, 2) == "_Z") - { - int status = 0; - const char *name = abi::__cxa_demangle(Symbol, 0, 0, &status); - if (name) - Symbol = name; - else - { - switch (status) - { - case 0: - fprintf(stderr, "Something went wrong, it returned success, but failed.\n"); - break; - case -1: - fprintf(stderr, "Memory allocation failure.\n"); - break; - case -2: - fprintf(stderr, "Invalid mangled name: %s.\n", Symbol.c_str()); - break; - case -3: - fprintf(stderr, "Invalid arguments.\n"); - break; - default: - fprintf(stderr, "No idea what happened here."); - } - } - } + /* demangle the name using __cxa_demangle() if needed */ + if( Symbol.substr(0, 2) != "_Z" ) + return; + + int status = 0; + char *name = abi::__cxa_demangle( Symbol, 0, 0, &status ); + if( name ) + { + Symbol = name; + free( name ); + return; + } + + switch( status ) + { + case -1: + fprintf( stderr, "Out of memory\n" ); + break; + case -2: + fprintf( stderr, "Invalid mangled name: %s.\n", Symbol.c_str() ); + break; + case -3: + fprintf( stderr, "Invalid arguments.\n" ); + break; + default: + fprintf( stderr, "Unexpected __cxa_demangle status: %i", status ); + break; + } } #else void BacktraceNames::Demangle() { }