From b6fa229bc4b361a23f23daa13af634a0515230d6 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Fri, 15 May 2009 13:14:52 -0700 Subject: Merge the dwflpp::query_cu_..._address methods The method query_cu_containing_global_address was only called by query_cu_containing_module_address, and the latter was just doing a simple argument transform. They are now merged into a single method, query_cu_containing_address. The function module_address_to_global is also merged here at its only call site. --- dwflpp.cxx | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) (limited to 'dwflpp.cxx') diff --git a/dwflpp.cxx b/dwflpp.cxx index f8d42c78..a13339ce 100644 --- a/dwflpp.cxx +++ b/dwflpp.cxx @@ -182,11 +182,17 @@ dwflpp::focus_on_function(Dwarf_Die * f) void -dwflpp::query_cu_containing_global_address(Dwarf_Addr a, void *arg) +dwflpp::query_cu_containing_address(Dwarf_Addr a, void *arg) { Dwarf_Addr bias; assert(dwfl); + assert(module); get_module_dwarf(); + + // globalize the module-relative address + if (module_name != TOK_KERNEL && dwfl_module_relocations (module) > 0) + a += module_start; + Dwarf_Die* cudie = dwfl_module_addrdie(module, a, &bias); if (cudie) // address could be wildly out of range query_cu (cudie, arg); @@ -194,25 +200,6 @@ dwflpp::query_cu_containing_global_address(Dwarf_Addr a, void *arg) } -void -dwflpp::query_cu_containing_module_address(Dwarf_Addr a, void *arg) -{ - query_cu_containing_global_address(module_address_to_global(a), arg); -} - - -Dwarf_Addr -dwflpp::module_address_to_global(Dwarf_Addr a) -{ - assert(dwfl); - assert(module); - get_module_dwarf(); - if (module_name == TOK_KERNEL || dwfl_module_relocations (module) <= 0) - return a; - return a + module_start; -} - - bool dwflpp::module_name_matches(string pattern) { -- cgit