aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-11-13 03:52:25 +0000
committerAlan Modra <amodra@gmail.com>2001-11-13 03:52:25 +0000
commit4e6bfe8ada4bae838d47c169d1cc2899db66ff19 (patch)
treeb52700e72a623011f4f118ad7a9719b96d735b30
parente4afe7429548beac154bb41d8f553d614a222d17 (diff)
downloadgdb-4e6bfe8ada4bae838d47c169d1cc2899db66ff19.zip
gdb-4e6bfe8ada4bae838d47c169d1cc2899db66ff19.tar.gz
gdb-4e6bfe8ada4bae838d47c169d1cc2899db66ff19.tar.bz2
* section.c (bfd_make_section_anyway): Don't increment section_id
and the BFD's section_count if adding the section failed. * vms.c (vms_new_section_hook): Adjust for bfd_make_section_anyway change.
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/section.c6
-rw-r--r--bfd/vms.c14
3 files changed, 21 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0a09617..e37b504 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2001-11-13 John Marshall <jmarshall@acm.org>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * section.c (bfd_make_section_anyway): Don't increment section_id
+ and the BFD's section_count if adding the section failed.
+ * vms.c (vms_new_section_hook): Adjust for bfd_make_section_anyway
+ change.
+
2001-11-12 Orjan Friberg <orjanf@axis.com>
* elf32-cris.c (cris_elf_grok_prstatus): Adjust values to match new
diff --git a/bfd/section.c b/bfd/section.c
index 53491f1..0d95f11 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -796,8 +796,8 @@ bfd_make_section_anyway (abfd, name)
return NULL;
newsect->name = name;
- newsect->id = section_id++;
- newsect->index = abfd->section_count++;
+ newsect->id = section_id;
+ newsect->index = abfd->section_count;
newsect->flags = SEC_NO_FLAGS;
newsect->userdata = NULL;
@@ -831,6 +831,8 @@ bfd_make_section_anyway (abfd, name)
return NULL;
}
+ section_id++;
+ abfd->section_count++;
*prev = newsect;
return newsect;
}
diff --git a/bfd/vms.c b/bfd/vms.c
index 94fa84e..55bcf61 100644
--- a/bfd/vms.c
+++ b/bfd/vms.c
@@ -733,19 +733,23 @@ vms_new_section_hook (abfd, section)
bfd *abfd;
asection *section;
{
+ /* Count hasn't been incremented yet. */
+ unsigned int section_count = abfd->section_count + 1;
+
#if VMS_DEBUG
- vms_debug (1, "vms_new_section_hook (%p, [%d]%s), count %d\n", abfd, section->index, section->name, abfd->section_count);
+ vms_debug (1, "vms_new_section_hook (%p, [%d]%s), count %d\n",
+ abfd, section->index, section->name, section_count);
#endif
- bfd_set_section_alignment(abfd, section, 4);
+ bfd_set_section_alignment (abfd, section, 4);
- if (abfd->section_count > PRIV (section_count))
+ if (section_count > PRIV (section_count))
{
- bfd_size_type amt = abfd->section_count;
+ bfd_size_type amt = section_count;
amt *= sizeof (asection *);
PRIV (sections) = (asection **) bfd_realloc (PRIV (sections), amt);
if (PRIV (sections) == 0)
return false;
- PRIV (section_count) = abfd->section_count;
+ PRIV (section_count) = section_count;
}
#if VMS_DEBUG
vms_debug (6, "section_count: %d\n", PRIV (section_count));