[RFA 03/23] Use gdb_file_up in find_and_open_script
Pedro Alves
palves@redhat.com
Fri Jun 2 17:24:00 GMT 2017
On 05/03/2017 11:46 PM, Tom Tromey wrote:
> This changes find_and_open_script to return a gdb_file_up. The result
> is also used to indicate whether the function succeeded, so the patch
> also removes the "streamp" argument; and finally, the type of the
> "full_path" argument is changed to remove more cleanups from the
> callers.
>
This is OK.
> -extern int find_and_open_script (const char *file, int search_path,
> - FILE **streamp, char **full_path);
> +extern gdb_file_up
> + find_and_open_script (const char *file, int search_path,
> + gdb::unique_xmalloc_ptr<char> *full_path);
>
Though I wonder whether using gdb::optional wouldn't look clearer:
/* The script that was opened. */
struct open_script
{
gdb_file_up stream;
gdb::unique_xmalloc_ptr<char> full_path;
};
gdb::optional<open_script>
find_and_open_script (const char *file, int search_path);
open_script opened = find_and_open_script (file, 1 /*search_path*/);
if (opened)
{
if (!file_is_auto_load_safe (res->full_path.get (),
_("auto-load: Loading %s script "
"\"%s\" from section \"%s\" of "
"objfile \"%s\".\n"),
ext_lang_name (language),
opened->full_path.get (),
section_name, objfile_name (objfile)))
opened.reset ();
}
...
/* If this file is not currently loaded, load it. */
if (opened && !in_hash_table)
sourcer (language, objfile, opened->stream, opened->full_path.get ());
}
Thanks,
Pedro Alves
More information about the Gdb-patches
mailing list