diff options
author | Pedro Alves <palves@redhat.com> | 2017-08-09 15:04:32 +0100 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2017-08-09 15:04:32 +0100 |
commit | 29592bde87d250ea56e8431053918899d3d0c16b (patch) | |
tree | 6dc7c4b6f29dcf555f17d7ad1f931e44331e7334 /gdb/cp-name-parser.y | |
parent | b33404388e5bbd8a1fddfde73cd4593ae2b557e8 (diff) | |
download | binutils-gdb-29592bde87d250ea56e8431053918899d3d0c16b.tar.gz |
Make cp_comp_to_string return a gdb::unique_xmalloc_ptr<char>
To help avoid issues like the one fixed by e88e8651cf34 ("Fix memory
leak in cp-support.c").
gdb/ChangeLog:
2017-08-09 Pedro Alves <palves@redhat.com>
* cp-name-parser.y (cp_comp_to_string): Return a
gdb::unique_xmalloc_ptr<char>.
* cp-support.c (replace_typedefs_qualified_name)
(replace_typedefs): Adjust to use gdb::unique_xmalloc_ptr<char>.
(cp_canonicalize_string_full): Use op= instead of explicit
convertion.
(cp_class_name_from_physname, method_name_from_physname)
(cp_func_name, cp_remove_params): Adjust to use
gdb::unique_xmalloc_ptr<char>.
* cp-support.h (cp_comp_to_string): Return a
gdb::unique_xmalloc_ptr<char>.
* python/py-type.c (typy_lookup_type): Adjust to use
gdb::unique_xmalloc_ptr<char>.
Diffstat (limited to 'gdb/cp-name-parser.y')
-rw-r--r-- | gdb/cp-name-parser.y | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index 78745cb5c7e..d430ae762d6 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -1963,13 +1963,14 @@ allocate_info (void) cplus_demangle_print does not, specifically the global destructor and constructor labels. */ -char * +gdb::unique_xmalloc_ptr<char> cp_comp_to_string (struct demangle_component *result, int estimated_len) { size_t err; - return cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, result, estimated_len, - &err); + char *res = cplus_demangle_print (DMGL_PARAMS | DMGL_ANSI, + result, estimated_len, &err); + return gdb::unique_xmalloc_ptr<char> (res); } /* Constructor for demangle_parse_info. */ |