From ce76e55c686af047b1b06695e8c9365d9529195b Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 24 May 2010 10:50:27 +0000 Subject: 2010-05-24 Tristan Gingold * vms-alpha.c (add_symbol_entry): New function extrated from ... (add_symbol): ... adjusted. --- bfd/vms-alpha.c | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) (limited to 'bfd/vms-alpha.c') diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c index b2f205e..0a88501 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -1043,23 +1043,12 @@ vms_esecflag_by_name (struct sec_flags_struct *section_flags, return section_flags[i].vflags_always; } -/* Input routines. */ +/* Add SYM to the symbol table of ABFD. + Return FALSE in case of error. */ -static struct vms_symbol_entry * -add_symbol (bfd *abfd, const unsigned char *ascic) +static bfd_boolean +add_symbol_entry (bfd *abfd, struct vms_symbol_entry *sym) { - struct vms_symbol_entry *entry; - int len; - - len = *ascic++; - entry = (struct vms_symbol_entry *)bfd_zalloc (abfd, sizeof (*entry) + len); - if (entry == NULL) - return NULL; - entry->namelen = len; - memcpy (entry->name, ascic, len); - entry->name[len] = 0; - entry->owner = abfd; - if (PRIV (gsd_sym_count) >= PRIV (max_sym_count)) { if (PRIV (max_sym_count) == 0) @@ -1076,10 +1065,33 @@ add_symbol (bfd *abfd, const unsigned char *ascic) (PRIV (max_sym_count) * sizeof (struct vms_symbol_entry *))); } if (PRIV (syms) == NULL) - return NULL; + return FALSE; } - PRIV (syms)[PRIV (gsd_sym_count)++] = entry; + PRIV (syms)[PRIV (gsd_sym_count)++] = sym; + return TRUE; +} + +/* Create a symbol whose name is ASCIC and add it to ABFD. + Return NULL in case of error. */ + +static struct vms_symbol_entry * +add_symbol (bfd *abfd, const unsigned char *ascic) +{ + struct vms_symbol_entry *entry; + int len; + + len = *ascic++; + entry = (struct vms_symbol_entry *)bfd_zalloc (abfd, sizeof (*entry) + len); + if (entry == NULL) + return NULL; + entry->namelen = len; + memcpy (entry->name, ascic, len); + entry->name[len] = 0; + entry->owner = abfd; + + if (!add_symbol_entry (abfd, entry)) + return NULL; return entry; } -- cgit v1.1