summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-05-14 12:02:42 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2020-05-14 12:10:24 +0100
commit4c52048f0990e6a89967ed0bb67884fc46074dcd (patch)
tree3acb5e206163959422fb9fe476e48eb82b7ed053 /src
parente78c8b6b5f2b36434ea34dd5e32d1ab89f4a18b2 (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_client_volume.c8
-rw-r--r--src/bin/e_client_volume.h1
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,
14static void _e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info); 14static void _e_client_volume_object_volume_drag_stop(void *data, Evas_Object *obj, void *event_info);
15static Eina_Bool _e_client_volume_object_changed(void *data, int type, void *event); 15static Eina_Bool _e_client_volume_object_changed(void *data, int type, void *event);
16static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info); 16static void _e_client_volume_object_del_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
17static void _e_client_volume_update(E_Client *ec);
18 17
19static void 18static void
20_e_client_volume_event_simple_free(void *d EINA_UNUSED, E_Event_Client *ev) 19_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)
177{ 176{
178 E_Client *ec; 177 E_Client *ec;
179 178
180 if (sink->in_del > 0) return;
181 sink->in_del++;
182 EINA_LIST_FREE(sink->clients, ec) 179 EINA_LIST_FREE(sink->clients, ec)
183 { 180 {
184 ec->sinks = eina_list_remove(ec->sinks, sink); 181 ec->sinks = eina_list_remove(ec->sinks, sink);
185 _e_client_volume_update(ec); 182 e_comp_object_frame_volume_update(ec->frame);
186 _e_client_volume_sink_event_simple(ec, sink, 183 _e_client_volume_sink_event_simple(ec, sink,
187 E_EVENT_CLIENT_VOLUME_SINK_DEL); 184 E_EVENT_CLIENT_VOLUME_SINK_DEL);
188 e_object_unref(E_OBJECT(ec)); 185 e_object_unref(E_OBJECT(ec));
189 } 186 }
190 sink->in_del--;
191 free(sink); 187 free(sink);
192} 188}
193 189
@@ -289,9 +285,9 @@ _e_client_volume_update(E_Client *ec)
289 ec->mute = EINA_FALSE; 285 ec->mute = EINA_FALSE;
290 ec->volume_control_enabled = EINA_FALSE; 286 ec->volume_control_enabled = EINA_FALSE;
291 } 287 }
292 e_comp_object_frame_volume_update(ec->frame);
293 if (ec->volume_control_enabled) 288 if (ec->volume_control_enabled)
294 { 289 {
290 e_comp_object_frame_volume_update(ec->frame);
295 e_client_volume_display_set(ec, ec->volume, ec->mute); 291 e_client_volume_display_set(ec, ec->volume, ec->mute);
296 } 292 }
297} 293}
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
26 E_Client_Volume_Sink_Name_Get func_name_get; 26 E_Client_Volume_Sink_Name_Get func_name_get;
27 void *data; 27 void *data;
28 Eina_List *clients; 28 Eina_List *clients;
29 int in_del;
30}; 29};
31 30
32struct _E_Event_Client_Volume_Sink 31struct _E_Event_Client_Volume_Sink