2010-05-24 Tristan Gingold <gingold@adacore.com>
authorTristan Gingold <gingold@adacore.com>
Mon, 24 May 2010 10:50:27 +0000 (10:50 +0000)
committerTristan Gingold <gingold@adacore.com>
Mon, 24 May 2010 10:50:27 +0000 (10:50 +0000)
* vms-alpha.c (add_symbol_entry): New function extrated from ...
(add_symbol): ... adjusted.

bfd/ChangeLog
bfd/vms-alpha.c

index 30078b4fb6ee6a874e255a53512f6e3aab3dcb07..0ef88f73682556f9890ed06d3f89cbe74afde206 100644 (file)
@@ -1,10 +1,7 @@
 2010-05-24  Tristan Gingold  <gingold@adacore.com>
 
-       * vms-alpha.c (struct vms_private_data_struct): Add section_max
-       field.
-       (_bfd_vms_slurp_egsd): Put PSC into the sections array.
-       (vms_new_section_hook): Do not put section in the sections
-       array.
+       * vms-alpha.c (add_symbol_entry): New function extrated from ...
+       (add_symbol): ... adjusted.
 
 2010-05-24  Tristan Gingold  <gingold@adacore.com>
 
index b2f205e5c8fb0f38cf6d504b1153e5e4cf52991f..0a8850126da0f11fa781fdec36841c48309bfcda 100644 (file)
@@ -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;
 }