From 82dcee7a6b756eb5fe1e93302653b7267c82e244 Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Sat, 1 Aug 2020 09:22:32 +0200 Subject: [PATCH] free in destructor --- message_cache.cc | 12 ++++++++++-- message_cache.hh | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/message_cache.cc b/message_cache.cc index d14edf1..492ec83 100644 --- a/message_cache.cc +++ b/message_cache.cc @@ -16,6 +16,16 @@ namespace pEp { next_id = u(e); } + MessageCache::cache_entry::cache_entry(::message *s, ::message *d) + : src(s), dst(d) + { } + + MessageCache::cache_entry::~cache_entry() + { + ::free_message(src); + ::free_message(dst); + } + PEP_STATUS MessageCache::cache_decrypt_message( PEP_SESSION session, message *src, @@ -350,8 +360,6 @@ namespace pEp { { std::lock_guard l(_mtx); - ::free_message(_cache.at(msg->id).src); - ::free_message(_cache.at(msg->id).dst); _cache.erase(msg->id); } diff --git a/message_cache.hh b/message_cache.hh index 0940fb7..a69dd6e 100644 --- a/message_cache.hh +++ b/message_cache.hh @@ -9,8 +9,8 @@ namespace pEp { class MessageCache { struct cache_entry { - cache_entry(::message *s, ::message *d) - : src(s), dst(d) { } + cache_entry(::message *s, ::message *d); + ~cache_entry(); ::message *src; ::message *dst;