diff options
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/machoread.c | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f966e9d..3d98d1b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2009-11-18 Tristan Gingold <gingold@adacore.com> + + * machoread.c (macho_oso_symfile): Fix typo. Add comments. + 2009-11-17 Jan Kratochvil <jan.kratochvil@redhat.com> * dbxread.c (set_namestring): Remove cast to unsigned. Check N_STRX diff --git a/gdb/machoread.c b/gdb/machoread.c index ac7063d..ebd90c6 100644 --- a/gdb/machoread.c +++ b/gdb/machoread.c @@ -429,6 +429,7 @@ macho_oso_symfile (struct objfile *main_objfile) const char *member_name = member_bfd->filename; int member_len = strlen (member_name); + /* If this member is referenced, add it as a symfile. */ for (ix2 = ix; ix2 < last_ix; ix2++) { oso2 = VEC_index (oso_el, vec, ix2); @@ -447,7 +448,9 @@ macho_oso_symfile (struct objfile *main_objfile) prev = member_bfd; member_bfd = bfd_openr_next_archived_file (archive_bfd, member_bfd); - if (ix2 < last_ix) + + /* Free previous member if not referenced by an oso. */ + if (ix2 >= last_ix) bfd_close (prev); } for (ix2 = ix; ix2 < last_ix; ix2++) |