-! (c)2010 Joe Groff bsd license
-USING: alien alien.c-types alien.libraries alien.strings
+! Copyright (C) 2010 Joe Groff.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien.c-types alien.data alien.destructors alien.strings
alien.syntax combinators destructors io.encodings.ascii kernel
-libc locals sequences system ;
+libc sequences ;
IN: alien.cxx.demangle.libstdcxx
-FUNCTION: char* __cxa_demangle ( char* mangled_name, char* output_buffer, size_t* length, int* status ) ;
+FUNCTION: char* __cxa_demangle ( char* mangled_name, char* output_buffer, size_t* length, int* status )
ERROR: demangle-memory-allocation-failure ;
ERROR: invalid-mangled-name name ;
: mangled-name? ( name -- ? )
"_Z" head? ;
+DESTRUCTOR: (free)
+
:: demangle ( mangled-name -- c++-name )
0 ulong <ref> :> length
0 int <ref> :> status [