@@ -61,8 +61,8 @@ const char *GetShortFileName(const char *filename) {
6161
6262#if defined(HAVE_CXXABI_H) && defined(HAVE_EXECINFO_H)
6363// The function name looks like a macro: it's a macro if we don't have ccxxabi.h
64- inline void KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (std::string &ans ,
65- const char *to_append ) {
64+ inline void KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (const char *to_append ,
65+ std::string *ans ) {
6666 // at input the string "to_append" looks like:
6767 // ./kaldi-error-test(_ZN5kaldi13UnitTestErrorEv+0xb) [0x804965d]
6868 // We want to extract the name e.g. '_ZN5kaldi13UnitTestErrorEv",
@@ -72,7 +72,7 @@ inline void KALDI_APPEND_POSSIBLY_DEMANGLED_STRING(std::string &ans,
7272 const char *plus = (paren ? strchr (paren, ' +' ) : NULL );
7373 if (!plus) { // did not find the '(' or did not find the '+'
7474 // This is a soft failure in case we did not get what we expected.
75- ans += to_append;
75+ ans-> append ( to_append) ;
7676 return ;
7777 }
7878 std::string stripped (paren+1 , plus-(paren+1 )); // the bit between ( and +.
@@ -83,14 +83,14 @@ inline void KALDI_APPEND_POSSIBLY_DEMANGLED_STRING(std::string &ans,
8383 // to demangle, so we don't check it.
8484
8585 if (demangled_name != NULL ) {
86- ans += demangled_name;
86+ ans-> append ( demangled_name) ;
8787 free (demangled_name);
8888 } else {
89- ans += to_append; // add the original string.
89+ ans-> append ( to_append) ; // add the original string.
9090 }
9191}
9292#else // defined(HAVE_CXXABI_H) && defined(HAVE_EXECINFO_H)
93- #define KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (ans, to_append ) ans += to_append
93+ #define KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (to_append, ans ) ans += to_append
9494#endif // defined(HAVE_CXXABI_H) && defined(HAVE_EXECINFO_H)
9595
9696#ifdef HAVE_EXECINFO_H
@@ -103,17 +103,17 @@ std::string KaldiGetStackTrace() {
103103 char **strings = backtrace_symbols (array, size);
104104 if (size <= KALDI_MAX_TRACE_PRINT) {
105105 for (size_t i = 0 ; i < size; i++) {
106- KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (ans, strings[i]);
106+ KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (strings[i], &ans );
107107 ans += " \n " ;
108108 }
109109 } else { // print out first+last (e.g.) 5.
110110 for (size_t i = 0 ; i < KALDI_MAX_TRACE_PRINT/2 ; i++) {
111- KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (ans, strings[i]);
111+ KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (strings[i], &ans );
112112 ans += " \n " ;
113113 }
114114 ans += " .\n .\n .\n " ;
115115 for (size_t i = size - KALDI_MAX_TRACE_PRINT/2 ; i < size; i++) {
116- KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (ans, strings[i]);
116+ KALDI_APPEND_POSSIBLY_DEMANGLED_STRING (strings[i], &ans );
117117 ans += " \n " ;
118118 }
119119 if (size == KALDI_MAX_TRACE_SIZE)
0 commit comments