forked from Imagelibrary/binutils-gdb
Change openp et al to use a unique_xmalloc_ptr
This changes openp, source_full_path_of, and find_and_open_source to take a unique_xmalloc_ptr, rather than a char*, as an outgoing argument type. This simplifies the API, ownership-wise, and allows for the removal of some cleanups. gdb/ChangeLog 2018-02-14 Tom Tromey <tom@tromey.com> * symfile.c (symfile_bfd_open): Update. * source.h (openp, source_full_path_of, find_and_open_source): Change argument type to unique_xmalloc_ptr. * source.c (openp): Take a unique_xmalloc_ptr. (source_full_path_of, find_and_open_source): Likewise. (open_source_file, symtab_to_fullname): Update. * solist.h (struct target_so_ops) <find_and_open_solib>: Take a unique_xmalloc_ptr. * solib.c (solib_find_1): Use unique_xmalloc_ptr. (exec_file_find): Update. * psymtab.c (psymtab_to_fullname): Update. * nto-tdep.h (nto_find_and_open_solib): Update. * nto-tdep.c (nto_find_and_open_solib): Change temp_path to a unique_xmalloc_ptr. * exec.c (exec_file_attach): Update. * dwarf2read.c (try_open_dwop_file): Use unique_xmalloc_ptr. * cli/cli-cmds.c (find_and_open_script): Use unique_xmalloc_ptr.
This commit is contained in:
@@ -1203,14 +1203,14 @@ psymtab_to_fullname (struct partial_symtab *ps)
|
||||
to handle cases like the file being moved. */
|
||||
if (ps->fullname == NULL)
|
||||
{
|
||||
int fd = find_and_open_source (ps->filename, ps->dirname, &ps->fullname);
|
||||
gdb::unique_xmalloc_ptr<char> fullname;
|
||||
int fd = find_and_open_source (ps->filename, ps->dirname, &fullname);
|
||||
ps->fullname = fullname.release ();
|
||||
|
||||
if (fd >= 0)
|
||||
close (fd);
|
||||
else
|
||||
{
|
||||
gdb::unique_xmalloc_ptr<char> fullname;
|
||||
|
||||
/* rewrite_source_path would be applied by find_and_open_source, we
|
||||
should report the pathname where GDB tried to find the file. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user