mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-05 21:50:21 +08:00
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:
@ -438,19 +438,18 @@ gdbscm_safe_source_script (const char *filename)
|
||||
%load-path, but we don't want %load-path to be searched. At least not
|
||||
by default. This function is invoked by the "source" GDB command which
|
||||
already has its own path search support. */
|
||||
char *abs_filename = NULL;
|
||||
gdb::unique_xmalloc_ptr<char> abs_filename;
|
||||
const char *result;
|
||||
|
||||
if (!IS_ABSOLUTE_PATH (filename))
|
||||
{
|
||||
abs_filename = gdb_realpath (filename);
|
||||
filename = abs_filename;
|
||||
filename = abs_filename.get ();
|
||||
}
|
||||
|
||||
result = gdbscm_with_guile (scscm_source_scheme_script,
|
||||
(void *) filename);
|
||||
|
||||
xfree (abs_filename);
|
||||
if (result != NULL)
|
||||
return xstrdup (result);
|
||||
return NULL;
|
||||
|
Reference in New Issue
Block a user