aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Foreman <derek.foreman.samsung@gmail.com>2019-01-10 15:59:26 -0600
committerDerek Foreman <derek.foreman.samsung@gmail.com>2019-01-15 13:47:18 -0600
commit0aa73f5365e181bedd7156162ce98917c07fa99e (patch)
treec7621b1fa36ea5e47b72397994edc404a3a617d1
parentecore_wl2: Convert frame callbacks to inlist (diff)
downloadefl-0aa73f5365e181bedd7156162ce98917c07fa99e.tar.gz
evas_render: Remove some list walks
Not that these deletes ever walk long lists, but it's trivial to stop doing it entirely. Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com> Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Reviewed-by: Chris Michael <cp.michael@samsung.com> Differential Revision: https://phab.enlightenment.org/D7611
-rw-r--r--src/lib/evas/canvas/evas_render.c8
-rw-r--r--src/lib/evas/include/evas_private.h3
2 files changed, 6 insertions, 5 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 57fc72226d..80c960bda9 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -3582,8 +3582,8 @@ evas_render_updates_internal(Evas *eo_e,
{
eina_evlog("+render_output_async_flush", eo_e, 0.0, NULL);
efl_ref(eo_e);
- e->rendering = EINA_TRUE;
- _rendering_evases = eina_list_append(_rendering_evases, e);
+ _rendering_evases = eina_list_prepend(_rendering_evases, e);
+ e->rendering = _rendering_evases;
_cb_always_call(eo_e, EVAS_CALLBACK_RENDER_FLUSH_PRE, NULL);
evas_thread_queue_flush((Evas_Thread_Command_Cb)evas_render_pipe_wakeup, e);
eina_evlog("-render_output_async_flush", eo_e, 0.0, NULL);
@@ -3856,8 +3856,8 @@ evas_render_wakeup(Evas *eo_e)
}
/* post rendering */
- _rendering_evases = eina_list_remove(_rendering_evases, evas);
- evas->rendering = EINA_FALSE;
+ _rendering_evases = eina_list_remove_list(_rendering_evases, evas->rendering);
+ evas->rendering = NULL;
post.updated_area = ret_updates;
_cb_always_call(eo_e, EVAS_CALLBACK_RENDER_POST, &post);
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 76621161af..901d3a5f67 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -889,12 +889,13 @@ struct _Evas_Public_Data
Evas_Device *default_mouse;
Evas_Device *default_keyboard;
+ Eina_List *rendering;
+
unsigned char changed : 1;
unsigned char delete_me : 1;
unsigned char invalidate : 1;
unsigned char cleanup : 1;
Eina_Bool is_frozen : 1;
- Eina_Bool rendering : 1;
Eina_Bool inside_post_render : 1;
Eina_Bool devices_modified : 1;
};