mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
Turn start_psymtab_common into a constructor
This turns start_psymtab_common into a constructor, and then changes the callers to use "new" directly. This completes the psymtab allocation transition -- now it is possible for symbol readers to subclass struct partial_symtab. gdb/ChangeLog 2020-01-26 Tom Tromey <tom@tromey.com> * xcoffread.c (xcoff_start_psymtab): Use new. * psymtab.c (partial_symtab::partial_symtab): New constructor, renamed from start_psymtab_common. * psympriv.h (struct partial_symtab): Add new constructor. (start_psymtab_common): Don't declare. * mdebugread.c (parse_partial_symbols): Use new. * dwarf2read.c (create_partial_symtab): Use new. * dbxread.c (start_psymtab): Use new. * ctfread.c (create_partial_symtab): Use new. Change-Id: I5a0217bcb52bcfa442559771954bb66bd9ccbf02
This commit is contained in:
parent
32caafd02b
commit
c3693a1d94
@ -1,3 +1,15 @@
|
||||
2020-01-26 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* xcoffread.c (xcoff_start_psymtab): Use new.
|
||||
* psymtab.c (partial_symtab::partial_symtab): New constructor,
|
||||
renamed from start_psymtab_common.
|
||||
* psympriv.h (struct partial_symtab): Add new constructor.
|
||||
(start_psymtab_common): Don't declare.
|
||||
* mdebugread.c (parse_partial_symbols): Use new.
|
||||
* dwarf2read.c (create_partial_symtab): Use new.
|
||||
* dbxread.c (start_psymtab): Use new.
|
||||
* ctfread.c (create_partial_symtab): Use new.
|
||||
|
||||
2020-01-26 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* xcoffread.c (xcoff_end_psymtab): Use new.
|
||||
|
@ -1299,7 +1299,7 @@ create_partial_symtab (const char *name,
|
||||
struct partial_symtab *pst;
|
||||
struct ctf_context *ccx;
|
||||
|
||||
pst = start_psymtab_common (objfile, name, 0);
|
||||
pst = new partial_symtab (name, objfile, 0);
|
||||
|
||||
ccx = XOBNEW (&objfile->objfile_obstack, struct ctf_context);
|
||||
ccx->fp = cfp;
|
||||
|
@ -1903,8 +1903,8 @@ static struct partial_symtab *
|
||||
start_psymtab (struct objfile *objfile, const char *filename, CORE_ADDR textlow,
|
||||
int ldsymoff)
|
||||
{
|
||||
struct partial_symtab *result =
|
||||
start_psymtab_common (objfile, filename, textlow);
|
||||
struct partial_symtab *result = new partial_symtab (filename, objfile,
|
||||
textlow);
|
||||
|
||||
result->read_symtab_private =
|
||||
XOBNEW (&objfile->objfile_obstack, struct symloc);
|
||||
|
@ -8027,7 +8027,7 @@ create_partial_symtab (struct dwarf2_per_cu_data *per_cu, const char *name)
|
||||
struct objfile *objfile = per_cu->dwarf2_per_objfile->objfile;
|
||||
struct partial_symtab *pst;
|
||||
|
||||
pst = start_psymtab_common (objfile, name, 0);
|
||||
pst = new partial_symtab (name, objfile, 0);
|
||||
|
||||
pst->psymtabs_addrmap_supported = true;
|
||||
|
||||
|
@ -2609,9 +2609,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
||||
textlow = fh->adr;
|
||||
else
|
||||
textlow = 0;
|
||||
pst = start_psymtab_common (objfile,
|
||||
fdr_name (fh),
|
||||
textlow);
|
||||
pst = new partial_symtab (fdr_name (fh), objfile, textlow);
|
||||
pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc);
|
||||
memset (pst->read_symtab_private, 0, sizeof (struct symloc));
|
||||
|
||||
|
@ -113,6 +113,14 @@ struct partial_symtab
|
||||
partial_symtab (const char *filename, struct objfile *objfile)
|
||||
ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3);
|
||||
|
||||
/* Like the above, but also sets the initial text low and text high
|
||||
from the ADDR argument, and sets the global- and
|
||||
static-offsets. */
|
||||
|
||||
partial_symtab (const char *filename, struct objfile *objfile,
|
||||
CORE_ADDR addr)
|
||||
ATTRIBUTE_NONNULL (2) ATTRIBUTE_NONNULL (3);
|
||||
|
||||
/* Return the raw low text address of this partial_symtab. */
|
||||
CORE_ADDR raw_text_low () const
|
||||
{
|
||||
@ -326,9 +334,6 @@ extern void add_psymbol_to_list (gdb::string_view name,
|
||||
|
||||
extern void init_psymbol_list (struct objfile *objfile, int total_symbols);
|
||||
|
||||
extern struct partial_symtab *start_psymtab_common (struct objfile *,
|
||||
const char *, CORE_ADDR);
|
||||
|
||||
extern void end_psymtab_common (struct objfile *, struct partial_symtab *);
|
||||
|
||||
static inline void
|
||||
|
@ -1475,24 +1475,18 @@ sort_pst_symbols (struct objfile *objfile, struct partial_symtab *pst)
|
||||
});
|
||||
}
|
||||
|
||||
/* Allocate and partially fill a partial symtab. It will be
|
||||
completely filled at the end of the symbol list.
|
||||
/* Partially fill a partial symtab. It will be completely filled at
|
||||
the end of the symbol list. */
|
||||
|
||||
FILENAME is the name of the symbol-file we are reading from. */
|
||||
|
||||
struct partial_symtab *
|
||||
start_psymtab_common (struct objfile *objfile,
|
||||
const char *filename,
|
||||
CORE_ADDR textlow)
|
||||
partial_symtab::partial_symtab (const char *filename,
|
||||
struct objfile *objfile,
|
||||
CORE_ADDR textlow)
|
||||
: partial_symtab (filename, objfile)
|
||||
{
|
||||
struct partial_symtab *psymtab;
|
||||
|
||||
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 ();
|
||||
psymtab->statics_offset = objfile->partial_symtabs->static_psymbols.size ();
|
||||
return psymtab;
|
||||
set_text_low (textlow);
|
||||
set_text_high (raw_text_low ()); /* default */
|
||||
globals_offset = objfile->partial_symtabs->global_psymbols.size ();
|
||||
statics_offset = objfile->partial_symtabs->static_psymbols.size ();
|
||||
}
|
||||
|
||||
/* Perform "finishing up" operations of a partial symtab. */
|
||||
|
@ -2007,11 +2007,8 @@ static struct partial_symtab *
|
||||
xcoff_start_psymtab (struct objfile *objfile,
|
||||
const char *filename, int first_symnum)
|
||||
{
|
||||
struct partial_symtab *result =
|
||||
start_psymtab_common (objfile,
|
||||
filename,
|
||||
/* We fill in textlow later. */
|
||||
0);
|
||||
/* We fill in textlow later. */
|
||||
struct partial_symtab *result = new partial_symtab (filename, objfile, 0);
|
||||
|
||||
result->read_symtab_private =
|
||||
XOBNEW (&objfile->objfile_obstack, struct symloc);
|
||||
|
Loading…
Reference in New Issue
Block a user