summaryrefslogtreecommitdiffstats
path: root/dwflpp.cxx
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-09-02 18:40:14 -0700
committerJosh Stone <jistone@redhat.com>2009-09-02 18:40:14 -0700
commit7a1921492e38221e1552b7698f001fa70d0e0e8b (patch)
treee03be011e1b60eea31fb06efc05e4952ad9780ed /dwflpp.cxx
parent64deb08509bf9682e7d3b8141399c5603edb2df2 (diff)
downloadsystemtap-steved-7a1921492e38221e1552b7698f001fa70d0e0e8b.tar.gz
systemtap-steved-7a1921492e38221e1552b7698f001fa70d0e0e8b.tar.xz
systemtap-steved-7a1921492e38221e1552b7698f001fa70d0e0e8b.zip
Delete stuff that dwflpp newed
* dwflpp.cxx (dwflpp::~dwflpp): Delete all of the caches.
Diffstat (limited to 'dwflpp.cxx')
-rw-r--r--dwflpp.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/dwflpp.cxx b/dwflpp.cxx
index 9dcfd002..3c6a106d 100644
--- a/dwflpp.cxx
+++ b/dwflpp.cxx
@@ -93,6 +93,23 @@ dwflpp::dwflpp(systemtap_session & session, const vector<string>& names):
dwflpp::~dwflpp()
{
free(cached_scopes);
+
+ for (module_cu_cache_t::iterator it = module_cu_cache.begin();
+ it != module_cu_cache.end(); ++it)
+ delete it->second;
+
+ for (mod_cu_function_cache_t::iterator it = cu_function_cache.begin();
+ it != cu_function_cache.end(); ++it)
+ delete it->second;
+
+ for (cu_inl_function_cache_t::iterator it = cu_inl_function_cache.begin();
+ it != cu_inl_function_cache.end(); ++it)
+ delete it->second;
+
+ for (mod_cu_function_cache_t::iterator it = global_alias_cache.begin();
+ it != global_alias_cache.end(); ++it)
+ delete it->second;
+
if (dwfl)
dwfl_end(dwfl);
}