aboutsummaryrefslogtreecommitdiff
path: root/bfd/xsym.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/xsym.c')
-rw-r--r--bfd/xsym.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/bfd/xsym.c b/bfd/xsym.c
index e0819a9..5000f83 100644
--- a/bfd/xsym.c
+++ b/bfd/xsym.c
@@ -2249,32 +2249,26 @@ bfd_sym_scan (bfd *abfd, bfd_sym_version version, bfd_sym_data_struct *mdata)
const bfd_target *
bfd_sym_object_p (bfd *abfd)
{
- struct bfd_preserve preserve;
bfd_sym_version version = -1;
+ bfd_sym_data_struct *mdata;
- preserve.marker = NULL;
bfd_seek (abfd, 0, SEEK_SET);
if (bfd_sym_read_version (abfd, &version) != 0)
goto wrong;
- preserve.marker = bfd_alloc (abfd, sizeof (bfd_sym_data_struct));
- if (preserve.marker == NULL
- || ! bfd_preserve_save (abfd, &preserve))
+ mdata = (bfd_sym_data_struct *) bfd_alloc (abfd, sizeof (*mdata));
+ if (mdata == NULL)
goto fail;
- if (bfd_sym_scan (abfd, version,
- (bfd_sym_data_struct *) preserve.marker) != 0)
+ if (bfd_sym_scan (abfd, version, mdata) != 0)
goto wrong;
- bfd_preserve_finish (abfd, &preserve);
return abfd->xvec;
wrong:
bfd_set_error (bfd_error_wrong_format);
fail:
- if (preserve.marker != NULL)
- bfd_preserve_restore (abfd, &preserve);
return NULL;
}