diff options
author | Tom Tromey <tom@tromey.com> | 2017-08-03 16:32:14 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-08-22 09:30:10 -0600 |
commit | e3e41d588adbe26a6ca54338dd4915382d981a3e (patch) | |
tree | 82e4563027b5e460a017465c39ec252257fb591d /gdb/compile | |
parent | 0d999a6ef0f98b22430d70951408869864c979e0 (diff) | |
download | gdb-e3e41d588adbe26a6ca54338dd4915382d981a3e.zip gdb-e3e41d588adbe26a6ca54338dd4915382d981a3e.tar.gz gdb-e3e41d588adbe26a6ca54338dd4915382d981a3e.tar.bz2 |
Change gdb_abspath to return a unique_xmalloc_ptr
This changes gdb_abspath to return a unique_xmalloc_ptr, and fixes up
the callers. This allows the removal of a cleanup, and also puts
ownership rules into the API, where they belong.
ChangeLog
2017-08-22 Tom Tromey <tom@tromey.com>
* compile/compile.c (compile_file_command): Use
gdb::unique_xmalloc_ptr, std::string.
* utils.c (gdb_abspath): Change return type.
* source.c (openp): Update.
* objfiles.c (allocate_objfile): Update.
* main.c (set_gdb_data_directory): Update.
* utils.h (gdb_abspath): Return a gdb::unique_xmalloc_ptr.
Diffstat (limited to 'gdb/compile')
-rw-r--r-- | gdb/compile/compile.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c index bca7b57..91e084f 100644 --- a/gdb/compile/compile.c +++ b/gdb/compile/compile.c @@ -90,8 +90,6 @@ static void compile_file_command (char *arg, int from_tty) { enum compile_i_scope_types scope = COMPILE_I_SIMPLE_SCOPE; - char *buffer; - struct cleanup *cleanup; scoped_restore save_async = make_scoped_restore (¤t_ui->async, 0); @@ -115,12 +113,9 @@ compile_file_command (char *arg, int from_tty) error (_("Unknown argument specified.")); arg = skip_spaces (arg); - arg = gdb_abspath (arg); - cleanup = make_cleanup (xfree, arg); - buffer = xstrprintf ("#include \"%s\"\n", arg); - make_cleanup (xfree, buffer); - eval_compile_command (NULL, buffer, scope, NULL); - do_cleanups (cleanup); + gdb::unique_xmalloc_ptr<char> abspath = gdb_abspath (arg); + std::string buffer = string_printf ("#include \"%s\"\n", abspath.get ()); + eval_compile_command (NULL, buffer.c_str (), scope, NULL); } /* Handle the input from the 'compile code' command. The |