diff options
author | Tom Tromey <tom@tromey.com> | 2019-10-22 17:08:16 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-01-26 16:40:21 -0700 |
commit | c3693a1d9466bc9d3abe004e66f1b56fed22ba61 (patch) | |
tree | 8e9f5a9fda035595e06d889abd595b4e173af616 | |
parent | 32caafd02b069c36908f41f53ae0cbca1911aaca (diff) | |
download | gdb-c3693a1d9466bc9d3abe004e66f1b56fed22ba61.zip gdb-c3693a1d9466bc9d3abe004e66f1b56fed22ba61.tar.gz gdb-c3693a1d9466bc9d3abe004e66f1b56fed22ba61.tar.bz2 |
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
-rw-r--r-- | gdb/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/ctfread.c | 2 | ||||
-rw-r--r-- | gdb/dbxread.c | 4 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 2 | ||||
-rw-r--r-- | gdb/mdebugread.c | 4 | ||||
-rw-r--r-- | gdb/psympriv.h | 11 | ||||
-rw-r--r-- | gdb/psymtab.c | 26 | ||||
-rw-r--r-- | gdb/xcoffread.c | 7 |
8 files changed, 37 insertions, 31 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 854ac31..6353a00 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,17 @@ 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. * psymtab.c (start_psymtab_common): Use new. (partial_symtab::partial_symtab): Rename from allocate_psymtab. diff --git a/gdb/ctfread.c b/gdb/ctfread.c index c41d96f..e3931fb 100644 --- a/gdb/ctfread.c +++ b/gdb/ctfread.c @@ -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; diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 9527085..4e388fae 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -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); diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 2cac286..f865fa4 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -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; diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c index 2ec30ec..dafc7f4 100644 --- a/gdb/mdebugread.c +++ b/gdb/mdebugread.c @@ -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)); diff --git a/gdb/psympriv.h b/gdb/psympriv.h index 74ff10e..82ae1b5 100644 --- a/gdb/psympriv.h +++ b/gdb/psympriv.h @@ -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 diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 844e718..b31461c 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -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. */ diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c index be10c4f..901c134 100644 --- a/gdb/xcoffread.c +++ b/gdb/xcoffread.c @@ -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); |