summaryrefslogtreecommitdiffstats
path: root/dwflpp.cxx
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-08-25 17:23:28 -0700
committerJosh Stone <jistone@redhat.com>2009-08-25 17:23:28 -0700
commitd089f5b2932a473692f8c3e1badb883fabc55dee (patch)
tree55a2176ea9ea2b560f853fe785d6ecb402008c65 /dwflpp.cxx
parent54558065ee8428cfdc42135f151739fbc787d034 (diff)
downloadsystemtap-steved-d089f5b2932a473692f8c3e1badb883fabc55dee.tar.gz
systemtap-steved-d089f5b2932a473692f8c3e1badb883fabc55dee.tar.xz
systemtap-steved-d089f5b2932a473692f8c3e1badb883fabc55dee.zip
Index cu_inl_function_cache_t by function->addr
Again, avoid needless string construction for map indexing. * dwflpp.h (cu_inl_function_cache_t): Index by the void* function->addr. * dwflpp.cxx (dwflpp::iterate_over_inline_instances): Index cu_inl_function_cache by function->addr.
Diffstat (limited to 'dwflpp.cxx')
-rw-r--r--dwflpp.cxx5
1 files changed, 2 insertions, 3 deletions
diff --git a/dwflpp.cxx b/dwflpp.cxx
index f0bf7dcf..7d4fa3ab 100644
--- a/dwflpp.cxx
+++ b/dwflpp.cxx
@@ -514,12 +514,11 @@ dwflpp::iterate_over_inline_instances (int (* callback)(Dwarf_Die * die, void *
assert (function);
assert (func_is_inline ());
- string key = module_name + ":" + cu_name + ":" + function_name;
- vector<Dwarf_Die>* v = cu_inl_function_cache[key];
+ vector<Dwarf_Die>* v = cu_inl_function_cache[function->addr];
if (v == 0)
{
v = new vector<Dwarf_Die>;
- cu_inl_function_cache[key] = v;
+ cu_inl_function_cache[function->addr] = v;
dwarf_func_inline_instances (function, cu_inl_function_caching_callback, v);
}