This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] Fix objfile_separate_debug_iterate


Hi,

this patch fixes a thinko that triggers when an objfile:

* has no separate objfile
* has 'brother' objfiles.

(This can happen currently only with Mach-O).

No regressions on GNU/Linux i386.

Tristan.

2010-02-08  Tristan Gingold  <gingold@adacore.com>

	* objfiles.c (objfile_separate_debug_iterate): Do not iterate on
	brothers of the parent.
---
 gdb/objfiles.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 0b07e37..489b812 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -392,18 +392,21 @@ objfile_separate_debug_iterate (const struct objfile *parent,
 {
   struct objfile *res;
   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)
-- 
1.6.2


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]