raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4c52048f0990e6a89967ed0bb67884fc46074dcd
commit 4c52048f0990e6a89967ed0bb67884fc46074dcd Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Thu May 14 12:02:42 2020 +0100 undo the client volume fix as it causes memory access issues. reopen D8928 it looked good until i started having some apps start/stop audio a lot with asan on - it was catching memory mis-accesses. definitely not ok to have this in Revert "e client vol - fix del-self in a del while deleting self..." This reverts commit e78c8b6b5f2b36434ea34dd5e32d1ab89f4a18b2. Revert "e_client_volume: Update the e_client frame object on sink del event" This reverts commit f4c1ba959e908dde14023aba7c7e55ce3b963d6e. --- src/bin/e_client_volume.c | 8 ++------ src/bin/e_client_volume.h | 1 - 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/bin/e_client_volume.c b/src/bin/e_client_volume.c index 96e9ab406..d1a4eaa6e 100644 --- a/src/bin/e_client_volume.c +++ b/src/bin/e_client_volume.c @@ -14,7 +14,6 @@ static void _e_client_volume_object_volume_changed(void *data, Evas_Object *obj, static void _e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info); static Eina_Bool _e_client_volume_object_changed(void *data, int type, void *event); static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); -static void _e_client_volume_update(E_Client *ec); static void _e_client_volume_event_simple_free(void *d EINA_UNUSED, E_Event_Client *ev) @@ -177,17 +176,14 @@ 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); - _e_client_volume_update(ec); + e_comp_object_frame_volume_update(ec->frame); _e_client_volume_sink_event_simple(ec, sink, E_EVENT_CLIENT_VOLUME_SINK_DEL); e_object_unref(E_OBJECT(ec)); } - sink->in_del--; free(sink); } @@ -289,9 +285,9 @@ _e_client_volume_update(E_Client *ec) ec->mute = EINA_FALSE; ec->volume_control_enabled = EINA_FALSE; } - e_comp_object_frame_volume_update(ec->frame); if (ec->volume_control_enabled) { + e_comp_object_frame_volume_update(ec->frame); e_client_volume_display_set(ec, ec->volume, ec->mute); } } diff --git a/src/bin/e_client_volume.h b/src/bin/e_client_volume.h index 8d9f44db7..12ae83628 100644 --- a/src/bin/e_client_volume.h +++ b/src/bin/e_client_volume.h @@ -26,7 +26,6 @@ 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 --
