Packets: Fix VariantParser invalid parser access bug
[senf.git] / Utils / TypeInfo.cc
index 06a2c90..bed2876 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
 // Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+//     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 //#include "TypeInfo.ih"
 
 // Custom includes
-#include "malloc.h"
-#define HAVE_DECL_BASENAME 1
-#define HAVE_DECL_ASPRINTF 1
-#define HAVE_DECL_VASPRINTF 1
-#include "impl/demangle.h"
+#include <cxxabi.h>
+#include <malloc.h>
 
 //#include "TypeInfo.mpp"
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
-
-// WARNING: This is completely g++ and libiberty dependent. The demangling
-// interface isn't even explicitly exportet from libiberty. However, it is
-// *EXTREMELY* helpful for debugging ...
-
 prefix_ std::string senf::prettyName(std::type_info const & type)
 {
     char const * mangled = type.name();
-    char * demangled = ::cplus_demangle(mangled,DMGL_TYPES|DMGL_AUTO);
+    int status (0);
+    char * demangled ( abi::__cxa_demangle(mangled, 0, 0, &status) );
     std::string name (demangled ? demangled : mangled);
     if (demangled)
         ::free(demangled);
@@ -64,4 +57,5 @@ prefix_ std::string senf::prettyName(std::type_info const & type)
 // indent-tabs-mode: nil
 // ispell-local-dictionary: "american"
 // compile-command: "scons -u test"
+// comment-column: 40
 // End: