2010-02-08 Tristan Gingold <gingold@adacore.com>
authorTristan Gingold <gingold@adacore.com>
Tue, 9 Feb 2010 10:59:50 +0000 (10:59 +0000)
committerTristan Gingold <gingold@adacore.com>
Tue, 9 Feb 2010 10:59:50 +0000 (10:59 +0000)
* objfiles.c (objfile_separate_debug_iterate): Do not iterate on
brothers of the parent.

gdb/ChangeLog
gdb/objfiles.c

index 0df0ae00a7926d4467599ab1c676e446bc3fa509..ceb22c0c9461b10d488765fa6ed9334b73db6a40 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-09  Tristan Gingold  <gingold@adacore.com>
+
+       * objfiles.c (objfile_separate_debug_iterate): Do not iterate on
+       brothers of the parent.
+
 2010-02-08  Tom Tromey  <tromey@redhat.com>
 
        PR c++/8017:
index 0b07e3709161139fd4ad75448dfa2aa29b4997a2..489b81289f096332ac301deed7097f6d27ce964b 100644 (file)
@@ -392,18 +392,21 @@ objfile_separate_debug_iterate (const struct objfile *parent,
 {
   struct objfile *res;
 
+  /* If any, return the first child.  */
   res = objfile->separate_debug_objfile;
   if (res)
     return res;
 
-  res = objfile->separate_debug_objfile_link;
-  if (res)
-    return res;
-
   /* Common case where there is no separate debug objfile.  */
   if (objfile == parent)
     return NULL;
 
+  /* Return the brother if any.  Note that we don't iterate on brothers of
+     the parents.  */
+  res = objfile->separate_debug_objfile_link;
+  if (res)
+    return res;
+
   for (res = objfile->separate_debug_objfile_backlink;
        res != parent;
        res = res->separate_debug_objfile_backlink)