summaryrefslogtreecommitdiff
path: root/libdwfl
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2010-05-04 18:03:42 -0700
committerRoland McGrath <roland@redhat.com>2010-05-04 19:49:18 -0700
commit89bb5d3856ffb27583f96a8f9469d01e32565e3a (patch)
treef76c20ee6ef9b7bf2d66f202c14898bdd54f404c /libdwfl
parent4820a057849240ca4e39c071beb2242cf30f9ac7 (diff)
downloadelfutils-89bb5d3856ffb27583f96a8f9469d01e32565e3a.tar.gz
dwfl_segment_report_module: Fix jump-start of NDX-finding loop.
Diffstat (limited to 'libdwfl')
-rw-r--r--libdwfl/ChangeLog3
-rw-r--r--libdwfl/dwfl_segment_report_module.c4
2 files changed, 6 insertions, 1 deletions
diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog
index fe3e91ef..5067ff7d 100644
--- a/libdwfl/ChangeLog
+++ b/libdwfl/ChangeLog
@@ -1,5 +1,8 @@
2010-05-04 Roland McGrath <roland@redhat.com>
+ * dwfl_segment_report_module.c (dwfl_segment_report_module):
+ Fix jump-start of NDX-finding loop.
+
* segment.c (insert): Fix moving of values following insertion.
(reify_segments): Fix up MOD->segment backpointer indices after
later insertions in the main loop invalidate them.
diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c
index 5f982f41..c91120bb 100644
--- a/libdwfl/dwfl_segment_report_module.c
+++ b/libdwfl/dwfl_segment_report_module.c
@@ -111,7 +111,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
if (segment >= dwfl->lookup_elts)
segment = dwfl->lookup_elts - 1;
- while (segment > 0 && dwfl->lookup_segndx[segment] > ndx)
+ while (segment > 0
+ && (dwfl->lookup_segndx[segment] > ndx
+ || dwfl->lookup_segndx[segment] == -1))
--segment;
while (dwfl->lookup_segndx[segment] < ndx)