fix cleanups in som_symtab_read

This fixes som_symtab_read not to leak cleanups.

	* somread.c (som_symtab_read): Call do_cleanups.
This commit is contained in:
Tom Tromey
2013-05-30 16:28:29 +00:00
parent 27833de78f
commit fe48dfb1ce
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2013-05-30 Tom Tromey <tromey@redhat.com>
* somread.c (som_symtab_read): Call do_cleanups.
2013-05-30 Tom Tromey <tromey@redhat.com> 2013-05-30 Tom Tromey <tromey@redhat.com>
* printcmd.c (print_command_1): Unconditionally call do_cleanups. * printcmd.c (print_command_1): Unconditionally call do_cleanups.

View File

@ -46,6 +46,7 @@ static void
som_symtab_read (bfd *abfd, struct objfile *objfile, som_symtab_read (bfd *abfd, struct objfile *objfile,
struct section_offsets *section_offsets) struct section_offsets *section_offsets)
{ {
struct cleanup *cleanup;
struct gdbarch *gdbarch = get_objfile_arch (objfile); struct gdbarch *gdbarch = get_objfile_arch (objfile);
unsigned int number_of_symbols; unsigned int number_of_symbols;
int val, dynamic; int val, dynamic;
@ -65,7 +66,7 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
We avoid using alloca because the memory size could be so large We avoid using alloca because the memory size could be so large
that we could hit the stack size limit. */ that we could hit the stack size limit. */
buf = xmalloc (symsize * number_of_symbols); buf = xmalloc (symsize * number_of_symbols);
make_cleanup (xfree, buf); cleanup = make_cleanup (xfree, buf);
bfd_seek (abfd, obj_som_sym_filepos (abfd), SEEK_SET); bfd_seek (abfd, obj_som_sym_filepos (abfd), SEEK_SET);
val = bfd_bread (buf, symsize * number_of_symbols, abfd); val = bfd_bread (buf, symsize * number_of_symbols, abfd);
if (val != symsize * number_of_symbols) if (val != symsize * number_of_symbols)
@ -316,6 +317,8 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
section), section),
objfile); objfile);
} }
do_cleanups (cleanup);
} }
/* Scan and build partial symbols for a symbol file. /* Scan and build partial symbols for a symbol file.