diff options
author | sergiodj <sergiodj> | 2012-06-02 04:34:20 +0000 |
---|---|---|
committer | sergiodj <sergiodj> | 2012-06-02 04:34:20 +0000 |
commit | b999d4a7b8054829705ba33a7890ccae02dc3d97 (patch) | |
tree | cbd2768118846eeb3b16e0c064e3256d6467114d /gdb/symtab.c | |
parent | 7bbe7c5c7271cbfd383c5019444e42aef7fd6b7b (diff) | |
download | gdb-b999d4a7b8054829705ba33a7890ccae02dc3d97.tar.gz |
2012-06-02 Sergio Durigan Junior <sergiodj@redhat.com>
* symtab.c (symbol_demangled_name): New variable `dem_name'. Use
it to optimize resolution of demangled name.
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r-- | gdb/symtab.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c index 85ddd1dfb39..5eb7ced1870 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -850,6 +850,8 @@ symbol_natural_name (const struct general_symbol_info *gsymbol) const char * symbol_demangled_name (const struct general_symbol_info *gsymbol) { + const char *dem_name = NULL; + switch (gsymbol->language) { case language_cplus: @@ -858,19 +860,17 @@ symbol_demangled_name (const struct general_symbol_info *gsymbol) case language_java: case language_objc: case language_fortran: - if (symbol_get_demangled_name (gsymbol) != NULL) - return symbol_get_demangled_name (gsymbol); + dem_name = symbol_get_demangled_name (gsymbol); break; case language_ada: - if (symbol_get_demangled_name (gsymbol) != NULL) - return symbol_get_demangled_name (gsymbol); - else - return ada_decode_symbol (gsymbol); + dem_name = symbol_get_demangled_name (gsymbol); + if (dem_name == NULL) + dem_name = ada_decode_symbol (gsymbol); break; default: break; } - return NULL; + return dem_name; } /* Return the search name of a symbol---generally the demangled or |