From 712566939dfb86339a8cb34cb5cac2fbe6bbffc8 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Fri, 24 Jan 2014 16:41:21 +0900 Subject: [PATCH] Evas filters: Add proxy source only once If the proxy has already been added to the list of proxy sources, don't add it again. This is for the filters case where unset isn't even called :) --- src/lib/evas/canvas/evas_object_image.c | 5 +++-- src/lib/evas/filters/evas_filter.c | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 043ad92b3b..4524768ac9 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -3231,8 +3231,9 @@ _proxy_set(Evas_Object *eo_proxy, Evas_Object *eo_src) EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src->proxy, Evas_Object_Proxy_Data, proxy_src_write) { - proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, - eo_proxy); + if (!eina_list_data_find(proxy_src_write->proxies, eo_proxy)) + proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, + eo_proxy); proxy_src_write->redraw = EINA_TRUE; } EINA_COW_WRITE_END(evas_object_proxy_cow, src->proxy, proxy_src_write); diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c index cfaa1fc730..8bf7b475ed 100644 --- a/src/lib/evas/filters/evas_filter.c +++ b/src/lib/evas/filters/evas_filter.c @@ -148,7 +148,8 @@ evas_filter_context_proxy_bind(Evas_Filter_Context *ctx, Evas_Object *eo_proxy, EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, source->proxy, Evas_Object_Proxy_Data, proxy_src_write) { - proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, eo_proxy); + if (!eina_list_data_find(source->proxy->proxies, eo_proxy)) + proxy_src_write->proxies = eina_list_append(proxy_src_write->proxies, eo_proxy); proxy_src_write->redraw = EINA_TRUE; } EINA_COW_WRITE_END(evas_object_proxy_cow, source->proxy, proxy_src_write);