Hi,
this change has no effect on functionality, it just makes the code less magic.
Thanks,
Jan
libdw/
2012-10-08 Jan Kratochvil <jan.kratochvil(a)redhat.com>
Code cleanup.
* fde.c (binary_search_fde): Remove always true <address >= start>
conditional. Move L initialization upwards.
diff --git a/libdw/fde.c b/libdw/fde.c
index d366768..bde0c99 100644
--- a/libdw/fde.c
+++ b/libdw/fde.c
@@ -181,32 +181,30 @@ binary_search_fde (Dwarf_CFI *cache, Dwarf_Addr address)
u = idx;
else
{
+ l = idx + 1;
+
Dwarf_Addr fde;
if (unlikely (read_encoded_value (&dummy_cfi,
cache->search_table_encoding, &p,
&fde)))
break;
- if (address >= start)
+
+ /* If this is the last entry, its upper bound is assumed to be
+ the end of the module.
+ XXX really should be end of containing PT_LOAD segment */
+ if (l < cache->search_table_entries)
{
- l = idx + 1;
-
- /* If this is the last entry, its upper bound is assumed to be
- the end of the module.
- XXX really should be end of containing PT_LOAD segment */
- if (l < cache->search_table_entries)
- {
- /* Look at the start address in the following entry. */
- Dwarf_Addr end;
- if (unlikely (read_encoded_value
- (&dummy_cfi, cache->search_table_encoding, &p,
- &end)))
- break;
- if (address >= end)
- continue;
- }
-
- return fde - cache->frame_vaddr;
+ /* Look at the start address in the following entry. */
+ Dwarf_Addr end;
+ if (unlikely (read_encoded_value
+ (&dummy_cfi, cache->search_table_encoding, &p,
+ &end)))
+ break;
+ if (address >= end)
+ continue;
}
+
+ return fde - cache->frame_vaddr;
}
}
Show replies by date
That looks fine.
Thanks,
Roland
On Mon, 08 Oct 2012 21:47:13 +0200, Roland McGrath wrote:
That looks fine.
Checked in:
6c45f4a1221ca4d50afb565ec331d085bc50d35f
Thanks,
Jan