Remove allocate_block and allocate_global_block

This removes allocate_block and allocate_global_block in favor of
simply calling 'new'.
This commit is contained in:
Tom Tromey 2023-01-20 07:16:34 -07:00
parent 56c0cd6158
commit 522553837b
5 changed files with 10 additions and 35 deletions

View File

@ -377,29 +377,6 @@ block::global_block () const
return block;
}
/* Allocate a block on OBSTACK, and initialize its elements to
zero/NULL. This is useful for creating "dummy" blocks that don't
correspond to actual source files.
Warning: it sets the block's BLOCK_MULTIDICT to NULL, which isn't a
valid value. If you really don't want the block to have a
dictionary, then you should subsequently set its BLOCK_MULTIDICT to
dict_create_linear (obstack, NULL). */
struct block *
allocate_block (struct obstack *obstack)
{
return new (obstack) struct block;
}
/* Allocate a global block. */
struct block *
allocate_global_block (struct obstack *obstack)
{
return new (obstack) struct global_block;
}
/* See block.h. */
void

View File

@ -426,10 +426,6 @@ extern const struct block *block_for_pc (CORE_ADDR);
extern const struct block *block_for_pc_sect (CORE_ADDR, struct obj_section *);
extern struct block *allocate_block (struct obstack *obstack);
extern struct block *allocate_global_block (struct obstack *obstack);
/* A block iterator. This structure should be treated as though it
were opaque; it is only defined here because we want to support
stack allocation of iterators. */

View File

@ -211,9 +211,10 @@ buildsym_compunit::finish_block_internal
struct pending_block *pblock;
struct pending_block *opblock;
block = (is_global
? allocate_global_block (&m_objfile->objfile_obstack)
: allocate_block (&m_objfile->objfile_obstack));
if (is_global)
block = new (&m_objfile->objfile_obstack) global_block;
else
block = new (&m_objfile->objfile_obstack) struct block;
if (symbol)
{

View File

@ -567,7 +567,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
int block_idx = FIRST_LOCAL_BLOCK;
for (gdb_block &gdb_block_iter : stab->blocks)
{
struct block *new_block = allocate_block (&objfile->objfile_obstack);
struct block *new_block = new (&objfile->objfile_obstack) block;
struct symbol *block_name = new (&objfile->objfile_obstack) symbol;
struct type *block_type = arch_type (objfile->arch (),
TYPE_CODE_VOID,
@ -609,9 +609,10 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
{
struct block *new_block;
new_block = (i == GLOBAL_BLOCK
? allocate_global_block (&objfile->objfile_obstack)
: allocate_block (&objfile->objfile_obstack));
if (i == GLOBAL_BLOCK)
new_block = new (&objfile->objfile_obstack) global_block;
else
new_block = new (&objfile->objfile_obstack) block;
new_block->set_multidict
(mdict_create_linear (&objfile->objfile_obstack, NULL));
new_block->set_superblock (block_iter);

View File

@ -4723,7 +4723,7 @@ static struct block *
new_block (struct objfile *objfile, enum block_type type,
enum language language)
{
struct block *retval = allocate_block (&objfile->objfile_obstack);
struct block *retval = new (&objfile->objfile_obstack) block;
if (type == FUNCTION_BLOCK)
retval->set_multidict (mdict_create_linear_expandable (language));