Change allocate_psymtab to be a constructor
This is the next step in getting the symbol readers to allocate psymtabs themselves: change allocate_psymtab to be an ordinary constructor, and then use "new" at the previous call sites. Note that this doesn't get us all the way -- start_psymtab_common is still allocating a partial symtab. gdb/ChangeLog 2020-01-26 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_end_psymtab): Use new. * psymtab.c (start_psymtab_common): Use new. (partial_symtab::partial_symtab): Rename from allocate_psymtab. Update. * psympriv.h (struct partial_symtab): Add parameters to constructor. Don't inline. (allocate_psymtab): Don't declare. * mdebugread.c (new_psymtab): Use new. * dwarf2read.c (dwarf2_create_include_psymtab): Use new. * dbxread.c (dbx_end_psymtab): Use new. Change-Id: Iffeae64c925050b90b9916cbc36e15b26ff42226
This commit is contained in:
parent
abaa2f2340
commit
32caafd02b
|
@ -1,3 +1,16 @@
|
|||
2020-01-26 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* xcoffread.c (xcoff_end_psymtab): Use new.
|
||||
* psymtab.c (start_psymtab_common): Use new.
|
||||
(partial_symtab::partial_symtab): Rename from allocate_psymtab.
|
||||
Update.
|
||||
* psympriv.h (struct partial_symtab): Add parameters to
|
||||
constructor. Don't inline.
|
||||
(allocate_psymtab): Don't declare.
|
||||
* mdebugread.c (new_psymtab): Use new.
|
||||
* dwarf2read.c (dwarf2_create_include_psymtab): Use new.
|
||||
* dbxread.c (dbx_end_psymtab): Use new.
|
||||
|
||||
2020-01-26 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* psymtab.h (class psymtab_storage) <install_psymtab>: Rename from
|
||||
|
|
|
@ -2025,7 +2025,7 @@ dbx_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
|
|||
for (i = 0; i < num_includes; i++)
|
||||
{
|
||||
struct partial_symtab *subpst =
|
||||
allocate_psymtab (include_list[i], objfile);
|
||||
new partial_symtab (include_list[i], objfile);
|
||||
|
||||
subpst->read_symtab_private =
|
||||
XOBNEW (&objfile->objfile_obstack, struct symloc);
|
||||
|
|
|
@ -6695,7 +6695,7 @@ static void
|
|||
dwarf2_create_include_psymtab (const char *name, struct partial_symtab *pst,
|
||||
struct objfile *objfile)
|
||||
{
|
||||
struct partial_symtab *subpst = allocate_psymtab (name, objfile);
|
||||
struct partial_symtab *subpst = new partial_symtab (name, objfile);
|
||||
|
||||
if (!IS_ABSOLUTE_PATH (subpst->filename))
|
||||
{
|
||||
|
|
|
@ -4662,7 +4662,7 @@ new_psymtab (const char *name, struct objfile *objfile)
|
|||
{
|
||||
struct partial_symtab *psymtab;
|
||||
|
||||
psymtab = allocate_psymtab (name, objfile);
|
||||
psymtab = new partial_symtab (name, objfile);
|
||||
|
||||
/* Keep a backpointer to the file's symbols. */
|
||||
|
||||
|
|
|
@ -104,12 +104,14 @@ enum psymtab_search_status
|
|||
|
||||
struct partial_symtab
|
||||
{
|
||||
partial_symtab ()
|
||||
: searched_flag (PST_NOT_SEARCHED),
|
||||
text_low_valid (0),
|
||||
text_high_valid (0)
|
||||
{
|
||||
}
|
||||
/* Allocate a new partial symbol table associated with OBJFILE.
|
||||
FILENAME (which must be non-NULL) is the filename of this partial
|
||||
symbol table; it is copied into the appropriate storage. The
|
||||
partial symtab will also be installed using
|
||||
psymtab_storage::install. */
|
||||
|
||||
partial_symtab (const char *filename, struct objfile *objfile)
|
||||
ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3);
|
||||
|
||||
/* Return the raw low text address of this partial_symtab. */
|
||||
CORE_ADDR raw_text_low () const
|
||||
|
@ -329,16 +331,6 @@ extern struct partial_symtab *start_psymtab_common (struct objfile *,
|
|||
|
||||
extern void end_psymtab_common (struct objfile *, struct partial_symtab *);
|
||||
|
||||
/* Allocate a new partial symbol table associated with OBJFILE.
|
||||
FILENAME (which must be non-NULL) is the filename of this partial
|
||||
symbol table; it is copied into the appropriate storage. A new
|
||||
partial symbol table is returned; aside from "next" and "filename",
|
||||
its fields are initialized to zero. */
|
||||
|
||||
extern struct partial_symtab *allocate_psymtab (const char *filename,
|
||||
struct objfile *objfile)
|
||||
ATTRIBUTE_NONNULL (1);
|
||||
|
||||
static inline void
|
||||
discard_psymtab (struct objfile *objfile, struct partial_symtab *pst)
|
||||
{
|
||||
|
|
|
@ -1487,7 +1487,7 @@ start_psymtab_common (struct objfile *objfile,
|
|||
{
|
||||
struct partial_symtab *psymtab;
|
||||
|
||||
psymtab = allocate_psymtab (filename, objfile);
|
||||
psymtab = new partial_symtab (filename, objfile);
|
||||
psymtab->set_text_low (textlow);
|
||||
psymtab->set_text_high (psymtab->raw_text_low ()); /* default */
|
||||
psymtab->globals_offset = objfile->partial_symtabs->global_psymbols.size ();
|
||||
|
@ -1646,16 +1646,17 @@ init_psymbol_list (struct objfile *objfile, int total_symbols)
|
|||
|
||||
/* See psympriv.h. */
|
||||
|
||||
struct partial_symtab *
|
||||
allocate_psymtab (const char *filename, struct objfile *objfile)
|
||||
partial_symtab::partial_symtab (const char *filename_, struct objfile *objfile)
|
||||
: searched_flag (PST_NOT_SEARCHED),
|
||||
text_low_valid (0),
|
||||
text_high_valid (0)
|
||||
{
|
||||
struct partial_symtab *psymtab = new partial_symtab;
|
||||
objfile->partial_symtabs->install_psymtab (psymtab);
|
||||
objfile->partial_symtabs->install_psymtab (this);
|
||||
|
||||
psymtab->filename
|
||||
filename
|
||||
= ((const char *) objfile->per_bfd->filename_cache.insert
|
||||
(filename, strlen (filename) + 1));
|
||||
psymtab->compunit_symtab = NULL;
|
||||
(filename_, strlen (filename_) + 1));
|
||||
compunit_symtab = NULL;
|
||||
|
||||
if (symtab_create_debug)
|
||||
{
|
||||
|
@ -1674,10 +1675,8 @@ allocate_psymtab (const char *filename, struct objfile *objfile)
|
|||
}
|
||||
fprintf_filtered (gdb_stdlog,
|
||||
"Created psymtab %s for module %s.\n",
|
||||
host_address_to_string (psymtab), filename);
|
||||
host_address_to_string (this), filename);
|
||||
}
|
||||
|
||||
return psymtab;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -2065,7 +2065,7 @@ xcoff_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
|
|||
for (i = 0; i < num_includes; i++)
|
||||
{
|
||||
struct partial_symtab *subpst =
|
||||
allocate_psymtab (include_list[i], objfile);
|
||||
new partial_symtab (include_list[i], objfile);
|
||||
|
||||
subpst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc);
|
||||
((struct symloc *) subpst->read_symtab_private)->first_symnum = 0;
|
||||
|
|
Loading…
Reference in New Issue