forked from enlightenment/enlightenment
e client vol - fix del-self in a del while deleting self...
This commit is contained in:
parent
3524bc167c
commit
e78c8b6b5f
|
@ -177,6 +177,8 @@ e_client_volume_sink_del(E_Client_Volume_Sink *sink)
|
||||||
{
|
{
|
||||||
E_Client *ec;
|
E_Client *ec;
|
||||||
|
|
||||||
|
if (sink->in_del > 0) return;
|
||||||
|
sink->in_del++;
|
||||||
EINA_LIST_FREE(sink->clients, ec)
|
EINA_LIST_FREE(sink->clients, ec)
|
||||||
{
|
{
|
||||||
ec->sinks = eina_list_remove(ec->sinks, sink);
|
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_EVENT_CLIENT_VOLUME_SINK_DEL);
|
||||||
e_object_unref(E_OBJECT(ec));
|
e_object_unref(E_OBJECT(ec));
|
||||||
}
|
}
|
||||||
|
sink->in_del--;
|
||||||
free(sink);
|
free(sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ struct _E_Client_Volume_Sink
|
||||||
E_Client_Volume_Sink_Name_Get func_name_get;
|
E_Client_Volume_Sink_Name_Get func_name_get;
|
||||||
void *data;
|
void *data;
|
||||||
Eina_List *clients;
|
Eina_List *clients;
|
||||||
|
int in_del;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Event_Client_Volume_Sink
|
struct _E_Event_Client_Volume_Sink
|
||||||
|
|
Loading…
Reference in New Issue