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>
* 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,
struct section_offsets *section_offsets)
{
struct cleanup *cleanup;
struct gdbarch *gdbarch = get_objfile_arch (objfile);
unsigned int number_of_symbols;
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
that we could hit the stack size limit. */
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);
val = bfd_bread (buf, symsize * number_of_symbols, abfd);
if (val != symsize * number_of_symbols)
@ -316,6 +317,8 @@ som_symtab_read (bfd *abfd, struct objfile *objfile,
section),
objfile);
}
do_cleanups (cleanup);
}
/* Scan and build partial symbols for a symbol file.