diff options
author | Tom Tromey <tom@tromey.com> | 2017-11-01 19:16:58 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-11-04 10:27:19 -0600 |
commit | 331b71e5ee226cb5455969899274f0e43e83aa1e (patch) | |
tree | 2c93c5534a3bd910b031813cad9a040669f47101 | |
parent | 9f584b37e36b67009fa23b6cffbec1bf691ef9ba (diff) | |
download | gdb-331b71e5ee226cb5455969899274f0e43e83aa1e.zip gdb-331b71e5ee226cb5455969899274f0e43e83aa1e.tar.gz gdb-331b71e5ee226cb5455969899274f0e43e83aa1e.tar.bz2 |
Use unique_xmalloc_ptr in c_type_print_base
This changes c_type_print_base to use unique_xmalloc_ptr, removing a
cleanup.
gdb/ChangeLog
2017-11-04 Tom Tromey <tom@tromey.com>
* c-typeprint.c (c_type_print_base): Use gdb::unique_xmalloc_ptr.
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/c-typeprint.c | 13 |
2 files changed, 7 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d4b10a3..04fee5e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2017-11-04 Tom Tromey <tom@tromey.com> + * c-typeprint.c (c_type_print_base): Use gdb::unique_xmalloc_ptr. + +2017-11-04 Tom Tromey <tom@tromey.com> + * linux-tdep.c (linux_core_info_proc_mappings): Use gdb::def_vector. (linux_get_siginfo_data): Return gdb::byte_vector. Remove diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c index 22fdaa5..ed5a1a4 100644 --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c @@ -1218,8 +1218,8 @@ c_type_print_base (struct type *type, struct ui_file *stream, for (j = 0; j < len2; j++) { const char *mangled_name; + gdb::unique_xmalloc_ptr<char> mangled_name_holder; char *demangled_name; - struct cleanup *inner_cleanup; const char *physname = TYPE_FN_FIELD_PHYSNAME (f, j); int is_full_physname_constructor = TYPE_FN_FIELD_CONSTRUCTOR (f, j) @@ -1231,8 +1231,6 @@ c_type_print_base (struct type *type, struct ui_file *stream, if (TYPE_FN_FIELD_ARTIFICIAL (f, j)) continue; - inner_cleanup = make_cleanup (null_cleanup, NULL); - QUIT; section_type = output_access_specifier (stream, section_type, level, @@ -1265,12 +1263,9 @@ c_type_print_base (struct type *type, struct ui_file *stream, } if (TYPE_FN_FIELD_STUB (f, j)) { - char *tem; - /* Build something we can demangle. */ - tem = gdb_mangle_name (type, i, j); - make_cleanup (xfree, tem); - mangled_name = tem; + mangled_name_holder.reset (gdb_mangle_name (type, i, j)); + mangled_name = mangled_name_holder.get (); } else mangled_name = TYPE_FN_FIELD_PHYSNAME (f, j); @@ -1328,8 +1323,6 @@ c_type_print_base (struct type *type, struct ui_file *stream, xfree (demangled_name); } - do_cleanups (inner_cleanup); - fprintf_filtered (stream, ";\n"); } } |