summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Juyung Seo <seojuyung2@gmail.com>2013-11-26 15:58:24 +0900
committerDaniel Juyung Seo <seojuyung2@gmail.com>2013-11-26 17:09:37 +0900
commite78c4e68f54e4b154ceb4601d67a2782a3c8e4aa (patch)
tree52e1efa67ec247836f7e0516cb9bfdd50835027b
parent55d8156414012e718a7e7adb3f9cd33e19744dc1 (diff)
Ecore animator: delete animater's internal timer in _end_tick() in all cases.
When the ecore_animator_source_set() is called with different sources repeatedly, sometimes internal timer is not deleted and this leads animator misbehavior. Especially when the source is changed from ECORE_ANIMATOR_SOURCE_TIMER to ECORE_ANIMATOR_SOURCE_CUSTOM before the SOURCE_TIMER's internal timer is deleted, this problem occurs. In this case, even though _end_tick() is called in ecore_animator_source_set(), the SOURCE_TIMER's timer is not deleted because the source is already changed to CUSTOM. So we should delete the internal timer in _end_tick() in all cases.
-rw-r--r--ChangeLog5
-rw-r--r--NEWS1
-rw-r--r--src/lib/ecore/ecore_anim.c22
3 files changed, 13 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 02d0bcb2c5..749486e97b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
12013-11-26 Daniel Juyung Seo (SeoZ)
2
3 * ecore anim: Fixed animator not working problem when source_set is
4 changed back and forth very fast.
5
12013-11-26 Cedric Bail 62013-11-26 Cedric Bail
2 7
3 * Evas: Allow fuzziness on the texture format returned by GL. 8 * Evas: Allow fuzziness on the texture format returned by GL.
diff --git a/NEWS b/NEWS
index bd3adc8cb7..56b44c3069 100644
--- a/NEWS
+++ b/NEWS
@@ -369,6 +369,7 @@ Fixes:
369 * Ecore: 369 * Ecore:
370 - Don't leak fd on exec. 370 - Don't leak fd on exec.
371 - Fix fd handler increase issue when ecore_pipe_add/del is called repeatedly. 371 - Fix fd handler increase issue when ecore_pipe_add/del is called repeatedly.
372 - Fixed animator not working problem when source_set is changed back and forth very fast.
372 * Ecore_Con: 373 * Ecore_Con:
373 - Fix a memory leak in ecore_con_dns when using ecore_con_server_connect. 374 - Fix a memory leak in ecore_con_dns when using ecore_con_server_connect.
374 - Don't leak fd on exec. 375 - Don't leak fd on exec.
diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c
index 5e99eaeed7..7b33f71385 100644
--- a/src/lib/ecore/ecore_anim.c
+++ b/src/lib/ecore/ecore_anim.c
@@ -88,23 +88,15 @@ _end_tick(void)
88{ 88{
89 if (!ticking) return; 89 if (!ticking) return;
90 ticking = 0; 90 ticking = 0;
91 switch (src)
92 {
93 case ECORE_ANIMATOR_SOURCE_TIMER:
94 if (timer)
95 {
96 _ecore_timer_del(timer);
97 timer = NULL;
98 }
99 break;
100 91
101 case ECORE_ANIMATOR_SOURCE_CUSTOM: 92 if (timer)
102 if (end_tick_cb) end_tick_cb((void *)end_tick_data); 93 {
103 break; 94 _ecore_timer_del(timer);
104 95 timer = NULL;
105 default:
106 break;
107 } 96 }
97
98 if ((src == ECORE_ANIMATOR_SOURCE_CUSTOM) && end_tick_cb)
99 end_tick_cb((void *)end_tick_data);
108} 100}
109 101
110static Eina_Bool 102static Eina_Bool