diff --git a/src/internet/model/arp-cache.cc b/src/internet/model/arp-cache.cc index f323ffc5a..dacf53cfa 100644 --- a/src/internet/model/arp-cache.cc +++ b/src/internet/model/arp-cache.cc @@ -88,7 +88,11 @@ void ArpCache::DoDispose() { NS_LOG_FUNCTION(this); - Flush(); + for (auto& iter : m_arpCache) + { + delete iter.second; /* delete the pointer ArpCache::Entry */ + } + m_arpCache.clear(); m_device = nullptr; m_interface = nullptr; if (!m_waitReplyTimer.IsPending()) diff --git a/src/internet/model/ndisc-cache.cc b/src/internet/model/ndisc-cache.cc index 9ffa1b07e..6c7d021bf 100644 --- a/src/internet/model/ndisc-cache.cc +++ b/src/internet/model/ndisc-cache.cc @@ -53,7 +53,11 @@ void NdiscCache::DoDispose() { NS_LOG_FUNCTION(this); - Flush(); + for (auto& iter : m_ndCache) + { + delete iter.second; /* delete the pointer NdiscCache::Entry */ + } + m_ndCache.clear(); m_device = nullptr; m_interface = nullptr; m_icmpv6 = nullptr;