Change gdb_realpath to return a unique_xmalloc_ptr
This changes gdb_realpath to return a unique_xmalloc_ptr and fixes up the callers. This allows removing some cleanups. This change by itself caused xfullpath.exp to fail; and attempting to fix that ran into various problems (like .get() being optimized out); so this patch also rewrites xfullpath.exp to be a C++ selftest instead. ChangeLog 2017-08-22 Tom Tromey <tom@tromey.com> * exec.c (exec_file_attach): Update. * linux-thread-db.c (try_thread_db_load): Update. * guile/scm-safe-call.c (gdbscm_safe_source_script): Update. * utils.c (gdb_realpath): Change return type. (gdb_realpath_keepfile): Update. (gdb_realpath_check_trailer, gdb_realpath_tests): New functions. (_initialize_utils): Register the new self test. * source.c (openp): Update. (find_and_open_source): Update. * nto-tdep.c (nto_find_and_open_solib): Update. * main.c (set_gdb_data_directory): Update. (captured_main_1): Update. * dwarf2read.c (dwarf2_get_dwz_file): Update (dw2_map_symbol_filenames): Update. * auto-load.c (auto_load_safe_path_vec_update): Update. (filename_is_in_auto_load_safe_path_vec): Change type of "filename_realp". (auto_load_objfile_script): Update. (file_is_auto_load_safe): Update. Use std::string. * utils.h (gdb_realpath): Return a gdb::unique_xmalloc_ptr. testsuite/ChangeLog 2017-08-22 Tom Tromey <tom@tromey.com> * gdb.gdb/xfullpath.exp: Remove.
This commit is contained in:
parent
4971c9a74b
commit
14278e1fdb
15 changed files with 130 additions and 145 deletions
|
@ -911,7 +911,7 @@ done:
|
|||
if (fd < 0)
|
||||
*filename_opened = NULL;
|
||||
else if ((opts & OPF_RETURN_REALPATH) != 0)
|
||||
*filename_opened = gdb_realpath (filename);
|
||||
*filename_opened = gdb_realpath (filename).release ();
|
||||
else
|
||||
*filename_opened = gdb_abspath (filename).release ();
|
||||
}
|
||||
|
@ -1050,7 +1050,7 @@ find_and_open_source (const char *filename,
|
|||
result = gdb_open_cloexec (*fullname, OPEN_MODE, 0);
|
||||
if (result >= 0)
|
||||
{
|
||||
char *lpath = gdb_realpath (*fullname);
|
||||
char *lpath = gdb_realpath (*fullname).release ();
|
||||
|
||||
xfree (*fullname);
|
||||
*fullname = lpath;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue