mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
gdb/
Code cleanup. * charset.c (find_charset_names): Remove variables ix and elt. Use free_char_ptr_vec. * elfread.c (build_id_to_debug_filename): New variables debugdir_vec, back_to and ix. Use dirnames_to_char_ptr_vec. Remove variable debugdir_end. New variable debugdir_len. * gdb_vecs.h (free_char_ptr_vec, make_cleanup_free_char_ptr_vec) (dirnames_to_char_ptr_vec_append, dirnames_to_char_ptr_vec): New declarations. * progspace.c (clear_program_space_solib_cache): Remove variables ix and elt. Use free_char_ptr_vec. * source.c (add_path): Remove variables argv, arg and argv_index. New variables dir_vec, back_to, ix and name. Use dirnames_to_char_ptr_vec_append. Use freeargv instead of make_cleanup_freeargv. Remove variable separator. Simplify the code no longer expecting DIRNAME_SEPARATOR. (openp): Remove variable p, p1 and len. New variables dir_vec, back_to, ix and dir. Use dirnames_to_char_ptr_vec. Simplify the code no longer expecting DIRNAME_SEPARATOR. * symfile.c (find_separate_debug_file): New variables debugdir_vec, back_to and ix. Use dirnames_to_char_ptr_vec. Remove variable debugdir_end. * utils.c (free_char_ptr_vec, do_free_char_ptr_vec) (make_cleanup_free_char_ptr_vec, dirnames_to_char_ptr_vec_append) (dirnames_to_char_ptr_vec): New functions.
This commit is contained in:
@ -1441,6 +1441,9 @@ find_separate_debug_file (const char *dir,
|
||||
char *debugdir;
|
||||
char *debugfile;
|
||||
int i;
|
||||
VEC (char_ptr) *debugdir_vec;
|
||||
struct cleanup *back_to;
|
||||
int ix;
|
||||
|
||||
/* Set I to max (strlen (canon_dir), strlen (dir)). */
|
||||
i = strlen (dir);
|
||||
@ -1475,20 +1478,12 @@ find_separate_debug_file (const char *dir,
|
||||
Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
cause "/..." lookups. */
|
||||
|
||||
debugdir = debug_file_directory;
|
||||
do
|
||||
debugdir_vec = dirnames_to_char_ptr_vec (debug_file_directory);
|
||||
back_to = make_cleanup_free_char_ptr_vec (debugdir_vec);
|
||||
|
||||
for (ix = 0; VEC_iterate (char_ptr, debugdir_vec, ix, debugdir); ++ix)
|
||||
{
|
||||
char *debugdir_end;
|
||||
|
||||
while (*debugdir == DIRNAME_SEPARATOR)
|
||||
debugdir++;
|
||||
|
||||
debugdir_end = strchr (debugdir, DIRNAME_SEPARATOR);
|
||||
if (debugdir_end == NULL)
|
||||
debugdir_end = &debugdir[strlen (debugdir)];
|
||||
|
||||
memcpy (debugfile, debugdir, debugdir_end - debugdir);
|
||||
debugfile[debugdir_end - debugdir] = 0;
|
||||
strcpy (debugfile, debugdir);
|
||||
strcat (debugfile, "/");
|
||||
strcat (debugfile, dir);
|
||||
strcat (debugfile, debuglink);
|
||||
@ -1503,8 +1498,7 @@ find_separate_debug_file (const char *dir,
|
||||
strlen (gdb_sysroot)) == 0
|
||||
&& IS_DIR_SEPARATOR (canon_dir[strlen (gdb_sysroot)]))
|
||||
{
|
||||
memcpy (debugfile, debugdir, debugdir_end - debugdir);
|
||||
debugfile[debugdir_end - debugdir] = 0;
|
||||
strcpy (debugfile, debugdir);
|
||||
strcat (debugfile, canon_dir + strlen (gdb_sysroot));
|
||||
strcat (debugfile, "/");
|
||||
strcat (debugfile, debuglink);
|
||||
@ -1512,11 +1506,9 @@ find_separate_debug_file (const char *dir,
|
||||
if (separate_debug_file_exists (debugfile, crc32, objfile))
|
||||
return debugfile;
|
||||
}
|
||||
|
||||
debugdir = debugdir_end;
|
||||
}
|
||||
while (*debugdir != 0);
|
||||
|
||||
do_cleanups (back_to);
|
||||
xfree (debugfile);
|
||||
return NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user