raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e78c8b6b5f2b36434ea34dd5e32d1ab89f4a18b2
commit e78c8b6b5f2b36434ea34dd5e32d1ab89f4a18b2 Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Thu May 14 11:40:52 2020 +0100 e client vol - fix del-self in a del while deleting self... --- src/bin/e_client_volume.c | 3 +++ src/bin/e_client_volume.h | 1 + 2 files changed, 4 insertions(+) diff --git a/src/bin/e_client_volume.c b/src/bin/e_client_volume.c index 4c52d5646..96e9ab406 100644 --- a/src/bin/e_client_volume.c +++ b/src/bin/e_client_volume.c @@ -177,6 +177,8 @@ e_client_volume_sink_del(E_Client_Volume_Sink *sink) { E_Client *ec; + if (sink->in_del > 0) return; + sink->in_del++; EINA_LIST_FREE(sink->clients, ec) { ec->sinks = eina_list_remove(ec->sinks, sink); @@ -185,6 +187,7 @@ e_client_volume_sink_del(E_Client_Volume_Sink *sink) E_EVENT_CLIENT_VOLUME_SINK_DEL); e_object_unref(E_OBJECT(ec)); } + sink->in_del--; free(sink); } diff --git a/src/bin/e_client_volume.h b/src/bin/e_client_volume.h index 12ae83628..8d9f44db7 100644 --- a/src/bin/e_client_volume.h +++ b/src/bin/e_client_volume.h @@ -26,6 +26,7 @@ struct _E_Client_Volume_Sink E_Client_Volume_Sink_Name_Get func_name_get; void *data; Eina_List *clients; + int in_del; }; struct _E_Event_Client_Volume_Sink --
