From 4eacf0436ae315b6214bd9455681ac02967d6341 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 7 Aug 2008 14:13:21 +0000 Subject: [PATCH] 2008-08-07 Tatsuhiro Tsujikawa Fixed memory leak * src/Dictionary.cc --- ChangeLog | 5 +++++ src/Dictionary.cc | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 98ddf601..d0a2ac1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-08-07 Tatsuhiro Tsujikawa + + Fixed memory leak + * src/Dictionary.cc + 2008-08-07 Tatsuhiro Tsujikawa Fixed memory leak diff --git a/src/Dictionary.cc b/src/Dictionary.cc index 16c785a2..d58745fa 100644 --- a/src/Dictionary.cc +++ b/src/Dictionary.cc @@ -67,8 +67,12 @@ void Dictionary::put(const std::string& name, MetaEntry* entry) { void Dictionary::remove(const std::string& name) { - table.erase(name); - order.erase(std::remove(order.begin(), order.end(), name), order.end()); + std::map::iterator i = table.find(name); + if(i != table.end()) { + delete i->second; + table.erase(i); + order.erase(std::remove(order.begin(), order.end(), name), order.end()); + } } void Dictionary::accept(MetaEntryVisitor* v) const {