Use XOBNEW/XOBNEWVEC/OBSTACK_ZALLOC when possible
Since XOBNEW/XOBNEWVEC/OBSTACK_ZALLOC are now poisoned to prevent using them with non-trivially-constructible objects, it is worth using them over plain obstack_alloc. This patch changes the locations I could find where we can do that change easily. gdb/ChangeLog: * ada-lang.c (cache_symbol): Use XOBNEW and/or XOBNEWVEC and/or OBSTACK_ZALLOC. * dwarf2-frame.c (dwarf2_build_frame_info): Likewise. * hppa-tdep.c (hppa_init_objfile_priv_data): Likewise. * mdebugread.c (mdebug_build_psymtabs): Likewise. (add_pending): Likewise. (parse_symbol): Likewise. (parse_partial_symbols): Likewise. (psymtab_to_symtab_1): Likewise. (new_psymtab): Likewise. (elfmdebug_build_psymtabs): Likewise. * minsyms.c (terminate_minimal_symbol_table): Likewise. * objfiles.c (get_objfile_bfd_data): Likewise. (objfile_register_static_link): Likewise. * psymtab.c (allocate_psymtab): Likewise. * stabsread.c (read_member_functions): Likewise. * xcoffread.c (xcoff_end_psymtab): Likewise.
This commit is contained in:
parent
284a0e3cbf
commit
e39db4db7c
@ -1,3 +1,23 @@
|
||||
2018-05-20 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* ada-lang.c (cache_symbol): Use XOBNEW and/or XOBNEWVEC and/or
|
||||
OBSTACK_ZALLOC.
|
||||
* dwarf2-frame.c (dwarf2_build_frame_info): Likewise.
|
||||
* hppa-tdep.c (hppa_init_objfile_priv_data): Likewise.
|
||||
* mdebugread.c (mdebug_build_psymtabs): Likewise.
|
||||
(add_pending): Likewise.
|
||||
(parse_symbol): Likewise.
|
||||
(parse_partial_symbols): Likewise.
|
||||
(psymtab_to_symtab_1): Likewise.
|
||||
(new_psymtab): Likewise.
|
||||
(elfmdebug_build_psymtabs): Likewise.
|
||||
* minsyms.c (terminate_minimal_symbol_table): Likewise.
|
||||
* objfiles.c (get_objfile_bfd_data): Likewise.
|
||||
(objfile_register_static_link): Likewise.
|
||||
* psymtab.c (allocate_psymtab): Likewise.
|
||||
* stabsread.c (read_member_functions): Likewise.
|
||||
* xcoffread.c (xcoff_end_psymtab): Likewise.
|
||||
|
||||
2018-05-20 Simon Marchi <simon.marchi@ericsson.com>
|
||||
|
||||
* common/traits.h (HAVE_IS_TRIVIALLY_COPYABLE): Define if
|
||||
|
@ -4744,8 +4744,7 @@ cache_symbol (const char *name, domain_enum domain, struct symbol *sym,
|
||||
return;
|
||||
|
||||
h = msymbol_hash (name) % HASH_SIZE;
|
||||
e = (struct cache_entry *) obstack_alloc (&sym_cache->cache_space,
|
||||
sizeof (*e));
|
||||
e = XOBNEW (&sym_cache->cache_space, cache_entry);
|
||||
e->next = sym_cache->root[h];
|
||||
sym_cache->root[h] = e;
|
||||
e->name = copy
|
||||
|
@ -2205,8 +2205,7 @@ dwarf2_build_frame_info (struct objfile *objfile)
|
||||
fde_table.entries = NULL;
|
||||
|
||||
/* Build a minimal decoding of the DWARF2 compilation unit. */
|
||||
unit = (struct comp_unit *) obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct comp_unit));
|
||||
unit = XOBNEW (&objfile->objfile_obstack, comp_unit);
|
||||
unit->abfd = objfile->obfd;
|
||||
unit->objfile = objfile;
|
||||
unit->dbase = 0;
|
||||
|
@ -205,13 +205,10 @@ hppa_symbol_address(const char *sym)
|
||||
static struct hppa_objfile_private *
|
||||
hppa_init_objfile_priv_data (struct objfile *objfile)
|
||||
{
|
||||
struct hppa_objfile_private *priv;
|
||||
hppa_objfile_private *priv
|
||||
= OBSTACK_ZALLOC (&objfile->objfile_obstack, hppa_objfile_private);
|
||||
|
||||
priv = (struct hppa_objfile_private *)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct hppa_objfile_private));
|
||||
set_objfile_data (objfile, hppa_objfile_priv_data, priv);
|
||||
memset (priv, 0, sizeof (*priv));
|
||||
|
||||
return priv;
|
||||
}
|
||||
|
@ -356,9 +356,8 @@ mdebug_build_psymtabs (minimal_symbol_reader &reader,
|
||||
char *fdr_end;
|
||||
FDR *fdr_ptr;
|
||||
|
||||
info->fdr = (FDR *) obstack_alloc (&objfile->objfile_obstack,
|
||||
(info->symbolic_header.ifdMax
|
||||
* sizeof (FDR)));
|
||||
info->fdr = (FDR *) XOBNEWVEC (&objfile->objfile_obstack, FDR,
|
||||
info->symbolic_header.ifdMax);
|
||||
fdr_src = (char *) info->external_fdr;
|
||||
fdr_end = (fdr_src
|
||||
+ info->symbolic_header.ifdMax * swap->external_fdr_size);
|
||||
@ -508,9 +507,7 @@ add_pending (FDR *fh, char *sh, struct type *t)
|
||||
/* Make sure we do not make duplicates. */
|
||||
if (!p)
|
||||
{
|
||||
p = ((struct mdebug_pending *)
|
||||
obstack_alloc (&mdebugread_objfile->objfile_obstack,
|
||||
sizeof (struct mdebug_pending)));
|
||||
p = XOBNEW (&mdebugread_objfile->objfile_obstack, mdebug_pending);
|
||||
p->s = sh;
|
||||
p->t = t;
|
||||
p->next = pending_list[f_idx];
|
||||
@ -1174,10 +1171,8 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
|
||||
SYMBOL_DOMAIN (s) = LABEL_DOMAIN;
|
||||
SYMBOL_ACLASS_INDEX (s) = LOC_CONST;
|
||||
SYMBOL_TYPE (s) = objfile_type (mdebugread_objfile)->builtin_void;
|
||||
e = ((struct mdebug_extra_func_info *)
|
||||
obstack_alloc (&mdebugread_objfile->objfile_obstack,
|
||||
sizeof (struct mdebug_extra_func_info)));
|
||||
memset (e, 0, sizeof (struct mdebug_extra_func_info));
|
||||
e = OBSTACK_ZALLOC (&mdebugread_objfile->objfile_obstack,
|
||||
mdebug_extra_func_info);
|
||||
SYMBOL_VALUE_BYTES (s) = (gdb_byte *) e;
|
||||
e->numargs = top_stack->numargs;
|
||||
e->pdr.framereg = -1;
|
||||
@ -2370,8 +2365,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
||||
&& (bfd_get_section_flags (cur_bfd, text_sect) & SEC_RELOC))
|
||||
relocatable = 1;
|
||||
|
||||
extern_tab = (EXTR *) obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (EXTR) * hdr->iextMax);
|
||||
extern_tab = XOBNEWVEC (&objfile->objfile_obstack, EXTR, hdr->iextMax);
|
||||
|
||||
includes_allocated = 30;
|
||||
includes_used = 0;
|
||||
@ -2413,10 +2407,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
||||
}
|
||||
|
||||
/* Allocate the global pending list. */
|
||||
pending_list =
|
||||
((struct mdebug_pending **)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
hdr->ifdMax * sizeof (struct mdebug_pending *)));
|
||||
pending_list = XOBNEWVEC (&objfile->objfile_obstack, mdebug_pending *,
|
||||
hdr->ifdMax);
|
||||
memset (pending_list, 0,
|
||||
hdr->ifdMax * sizeof (struct mdebug_pending *));
|
||||
|
||||
@ -2656,8 +2648,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
||||
textlow,
|
||||
objfile->global_psymbols,
|
||||
objfile->static_psymbols);
|
||||
pst->read_symtab_private = obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct symloc));
|
||||
pst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc);
|
||||
memset (pst->read_symtab_private, 0, sizeof (struct symloc));
|
||||
|
||||
save_pst = pst;
|
||||
@ -3771,11 +3762,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
|
||||
/* Skip the first file indirect entry as it is a self dependency for
|
||||
source files or a reverse .h -> .c dependency for header files. */
|
||||
pst->number_of_dependencies = 0;
|
||||
pst->dependencies =
|
||||
((struct partial_symtab **)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
((fh->crfd - 1)
|
||||
* sizeof (struct partial_symtab *))));
|
||||
pst->dependencies = XOBNEWVEC (&objfile->objfile_obstack,
|
||||
partial_symtab *, (fh->crfd - 1));
|
||||
for (s_idx = 1; s_idx < fh->crfd; s_idx++)
|
||||
{
|
||||
RFDT rh;
|
||||
@ -4061,13 +4049,11 @@ psymtab_to_symtab_1 (struct objfile *objfile,
|
||||
{
|
||||
/* Make up special symbol to contain
|
||||
procedure specific info. */
|
||||
struct mdebug_extra_func_info *e =
|
||||
((struct mdebug_extra_func_info *)
|
||||
obstack_alloc (&mdebugread_objfile->objfile_obstack,
|
||||
sizeof (struct mdebug_extra_func_info)));
|
||||
mdebug_extra_func_info *e
|
||||
= OBSTACK_ZALLOC (&mdebugread_objfile->objfile_obstack,
|
||||
mdebug_extra_func_info);
|
||||
struct symbol *s = new_symbol (MDEBUG_EFI_SYMBOL_NAME);
|
||||
|
||||
memset (e, 0, sizeof (struct mdebug_extra_func_info));
|
||||
SYMBOL_DOMAIN (s) = LABEL_DOMAIN;
|
||||
SYMBOL_ACLASS_INDEX (s) = LOC_CONST;
|
||||
SYMBOL_TYPE (s) = objfile_type (objfile)->builtin_void;
|
||||
@ -4736,9 +4722,8 @@ new_psymtab (const char *name, struct objfile *objfile)
|
||||
|
||||
/* Keep a backpointer to the file's symbols. */
|
||||
|
||||
psymtab->read_symtab_private = obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct symloc));
|
||||
memset (psymtab->read_symtab_private, 0, sizeof (struct symloc));
|
||||
psymtab->read_symtab_private
|
||||
= OBSTACK_ZALLOC (&objfile->objfile_obstack, symloc);
|
||||
CUR_BFD (psymtab) = cur_bfd;
|
||||
DEBUG_SWAP (psymtab) = debug_swap;
|
||||
DEBUG_INFO (psymtab) = debug_info;
|
||||
@ -4863,9 +4848,7 @@ elfmdebug_build_psymtabs (struct objfile *objfile,
|
||||
|
||||
minimal_symbol_reader reader (objfile);
|
||||
|
||||
info = ((struct ecoff_debug_info *)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct ecoff_debug_info)));
|
||||
info = XOBNEW (&objfile->objfile_obstack, ecoff_debug_info);
|
||||
|
||||
if (!(*swap->read_debug_info) (abfd, sec, info))
|
||||
error (_("Error reading ECOFF debugging information: %s"),
|
||||
|
@ -1419,10 +1419,8 @@ void
|
||||
terminate_minimal_symbol_table (struct objfile *objfile)
|
||||
{
|
||||
if (! objfile->per_bfd->msymbols)
|
||||
objfile->per_bfd->msymbols
|
||||
= ((struct minimal_symbol *)
|
||||
obstack_alloc (&objfile->per_bfd->storage_obstack,
|
||||
sizeof (struct minimal_symbol)));
|
||||
objfile->per_bfd->msymbols = XOBNEW (&objfile->per_bfd->storage_obstack,
|
||||
minimal_symbol);
|
||||
|
||||
{
|
||||
struct minimal_symbol *m
|
||||
|
@ -147,11 +147,7 @@ get_objfile_bfd_data (struct objfile *objfile, struct bfd *abfd)
|
||||
set_bfd_data (abfd, objfiles_bfd_data, storage);
|
||||
}
|
||||
else
|
||||
{
|
||||
storage = (objfile_per_bfd_storage *)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (objfile_per_bfd_storage));
|
||||
}
|
||||
storage = XOBNEW (&objfile->objfile_obstack, objfile_per_bfd_storage);
|
||||
|
||||
/* objfile_per_bfd_storage is not trivially constructible, must
|
||||
call the ctor manually. */
|
||||
@ -269,8 +265,7 @@ objfile_register_static_link (struct objfile *objfile,
|
||||
slot = htab_find_slot (objfile->static_links, &lookup_entry, INSERT);
|
||||
gdb_assert (*slot == NULL);
|
||||
|
||||
entry = (struct static_link_htab_entry *) obstack_alloc
|
||||
(&objfile->objfile_obstack, sizeof (*entry));
|
||||
entry = XOBNEW (&objfile->objfile_obstack, static_link_htab_entry);
|
||||
entry->block = block;
|
||||
entry->static_link = static_link;
|
||||
*slot = (void *) entry;
|
||||
|
@ -1805,9 +1805,7 @@ allocate_psymtab (const char *filename, struct objfile *objfile)
|
||||
objfile->free_psymtabs = psymtab->next;
|
||||
}
|
||||
else
|
||||
psymtab = (struct partial_symtab *)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct partial_symtab));
|
||||
psymtab = XOBNEW (&objfile->objfile_obstack, partial_symtab);
|
||||
|
||||
memset (psymtab, 0, sizeof (struct partial_symtab));
|
||||
psymtab->filename
|
||||
|
@ -2733,11 +2733,8 @@ read_member_functions (struct field_info *fip, const char **pp,
|
||||
xfree (main_fn_name);
|
||||
}
|
||||
|
||||
new_fnlist->fn_fieldlist.fn_fields = (struct fn_field *)
|
||||
obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct fn_field) * length);
|
||||
memset (new_fnlist->fn_fieldlist.fn_fields, 0,
|
||||
sizeof (struct fn_field) * length);
|
||||
new_fnlist->fn_fieldlist.fn_fields
|
||||
= OBSTACK_CALLOC (&objfile->objfile_obstack, length, fn_field);
|
||||
for (i = length; (i--, sublist); sublist = sublist->next)
|
||||
{
|
||||
new_fnlist->fn_fieldlist.fn_fields[i] = sublist->fn_field;
|
||||
|
@ -2097,8 +2097,7 @@ xcoff_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
|
||||
struct partial_symtab *subpst =
|
||||
allocate_psymtab (include_list[i], objfile);
|
||||
|
||||
subpst->read_symtab_private = obstack_alloc (&objfile->objfile_obstack,
|
||||
sizeof (struct symloc));
|
||||
subpst->read_symtab_private = XOBNEW (&objfile->objfile_obstack, symloc);
|
||||
((struct symloc *) subpst->read_symtab_private)->first_symnum = 0;
|
||||
((struct symloc *) subpst->read_symtab_private)->numsyms = 0;
|
||||
subpst->textlow = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user