From: Daniel Zaoui Date: Wed, 15 Mar 2017 20:44:02 +0000 (+0200) Subject: Free packet buffer outside of the dispatcher X-Git-Tag: upstream/1.20.0~801^2~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ad0d6ab224c680f68e514edfa85b61d84b2768b;p=platform%2Fupstream%2Fefl.git Free packet buffer outside of the dispatcher --- diff --git a/src/lib/eina/eina_debug.c b/src/lib/eina/eina_debug.c index 51d854b..e1237c0 100644 --- a/src/lib/eina/eina_debug.c +++ b/src/lib/eina/eina_debug.c @@ -610,6 +610,9 @@ _monitor(void *_data) // something we don't understand e_debug("EINA DEBUG ERROR: Unknown command"); } + /* Free the buffer only if the default dispatcher is used */ + if (_session->dispatch_cb == eina_debug_dispatch) + free(buffer); } else if (size == 0) { @@ -725,12 +728,7 @@ eina_debug_dispatch(Eina_Debug_Session *session, void *buffer) { Eina_Debug_Packet_Header *hdr = buffer; Eina_Debug_Error ret = EINA_DEBUG_OK; - if (hdr->thread_id == 0) - { - ret = _self_dispatch(session, buffer); - free(buffer); - return ret; - } + if (hdr->thread_id == 0) return _self_dispatch(session, buffer); else { int i, nb_calls = 0; @@ -786,7 +784,6 @@ eina_debug_dispatch(Eina_Debug_Session *session, void *buffer) } eina_spinlock_release(&_eina_debug_thread_lock); } - free(buffer); } return ret; }