m_file_names.emplace_back (name, d_index, mod_time, length);
}
-gdb::unique_xmalloc_ptr<char>
+std::string
line_header::file_file_name (int file) const
{
/* Is the file number a valid index into the line header's file name
{
const char *dir = fe->include_dir (this);
if (dir != NULL)
- return gdb::unique_xmalloc_ptr<char> (concat (dir, SLASH_STRING,
- fe->name,
- (char *) NULL));
+ return string_printf ("%s/%s", dir, fe->name);
}
- return make_unique_xstrdup (fe->name);
+
+ return fe->name;
}
else
{
/* The compiler produced a bogus file number. We can at least
record the macro definitions made in the file, even if we
won't be able to find the file by name. */
- char fake_name[80];
-
- xsnprintf (fake_name, sizeof (fake_name),
- "<bad macro file number %d>", file);
-
complaint (_("bad file number in macro information (%d)"),
file);
- return make_unique_xstrdup (fake_name);
+ return string_printf ("<bad macro file number %d>", file);
}
}
const gdb_byte *statement_program_start {}, *statement_program_end {};
/* Return file name relative to the compilation directory of file
- number I in this object's file name table. The result is
- allocated using xmalloc; the caller is responsible for freeing
- it. */
- gdb::unique_xmalloc_ptr<char> file_file_name (int file) const;
+ number FILE in this object's file name table. */
+ std::string file_file_name (int file) const;
private:
/* The include_directories table. Note these are observing
const struct line_header *lh)
{
/* File name relative to the compilation directory of this source file. */
- gdb::unique_xmalloc_ptr<char> file_name = lh->file_file_name (file);
+ std::string file_name = lh->file_file_name (file);
if (! current_file)
{
/* If we have no current file, then this must be the start_file
directive for the compilation unit's main source file. */
- current_file = macro_set_main (macro_table, file_name.get ());
+ current_file = macro_set_main (macro_table, file_name.c_str ());
macro_define_special (macro_table);
}
else
- current_file = macro_include (current_file, line, file_name.get ());
+ current_file = macro_include (current_file, line, file_name.c_str ());
return current_file;
}