From 14771ec5263036061f74175adb89d4fabba3b013 Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Fri, 21 Aug 2015 22:25:18 +0200 Subject: [PATCH] memory management --- src/org_pEp_jniadapter_AbstractEngine.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/org_pEp_jniadapter_AbstractEngine.cc b/src/org_pEp_jniadapter_AbstractEngine.cc index 64ce299..98a3a5c 100644 --- a/src/org_pEp_jniadapter_AbstractEngine.cc +++ b/src/org_pEp_jniadapter_AbstractEngine.cc @@ -69,7 +69,7 @@ extern "C" { int examine_identity(pEp_identity *ident, void *arg) { locked_queue< pEp_identity * > *queue = (locked_queue< pEp_identity * > *) arg; - queue->push_back(ident); + queue->push_back(identity_dup(ident)); return 0; } @@ -90,6 +90,13 @@ extern "C" { PEP_STATUS status = do_keymanagement(retrieve_next_identity, arg); locked_queue< pEp_identity * > *queue = (locked_queue< pEp_identity * > *) arg; + + while (queue->size()) { + pEp_identity *ident = queue->front(); + queue->pop_front(); + free_identity(ident); + } + delete queue; return (void *) status;