diff options
author | Tom Tromey <tromey@adacore.com> | 2021-10-04 08:44:22 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2021-10-04 13:45:38 -0600 |
commit | 3456e70c9d69da8d62a0ea1f8c2e643648afc654 (patch) | |
tree | 7959a8dc460685d2e8e3197478eddb4430d48708 /gdb/language.h | |
parent | e133de4984cef9acb32fd756c607aa2fa1d090fb (diff) | |
download | gdb-3456e70c9d69da8d62a0ea1f8c2e643648afc654.zip gdb-3456e70c9d69da8d62a0ea1f8c2e643648afc654.tar.gz gdb-3456e70c9d69da8d62a0ea1f8c2e643648afc654.tar.bz2 |
Use unique_xmalloc_ptr<char> when demangling
I noticed that some methods in language_defn could use
unique_xmalloc_ptr<char> rather than a plain 'char *'. This patch
implements this change, fixing up the fallout and changing
gdb_demangle to also return this type. In one spot, std::string is
used to simplify some related code, and in another, an auto_obstack is
used to avoid manual management.
Regression tested on x86-64 Fedora 34.
Diffstat (limited to 'gdb/language.h')
-rw-r--r-- | gdb/language.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gdb/language.h b/gdb/language.h index 69101bd..1ba0b93 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -430,15 +430,16 @@ struct language_defn The resulting string should be of the form that will be installed into a symbol. */ - virtual bool sniff_from_mangled_name (const char *mangled, - char **demangled) const + virtual bool sniff_from_mangled_name + (const char *mangled, gdb::unique_xmalloc_ptr<char> *demangled) const { *demangled = nullptr; return false; } /* Return demangled language symbol version of MANGLED, or NULL. */ - virtual char *demangle_symbol (const char *mangled, int options) const + virtual gdb::unique_xmalloc_ptr<char> demangle_symbol (const char *mangled, + int options) const { return nullptr; } @@ -791,8 +792,9 @@ extern const char *language_str (enum language); extern CORE_ADDR skip_language_trampoline (struct frame_info *, CORE_ADDR pc); /* Return demangled language symbol, or NULL. */ -extern char *language_demangle (const struct language_defn *current_language, - const char *mangled, int options); +extern gdb::unique_xmalloc_ptr<char> language_demangle + (const struct language_defn *current_language, + const char *mangled, int options); /* Return information about whether TYPE should be passed (and returned) by reference at the language level. */ |