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

-- 


Reply via email to