From: ChunEon Park Date: Tue, 31 Aug 2010 08:30:59 +0000 (+0900) Subject: [elm_animator.c] added dogtag field to certify memory reference. X-Git-Tag: origin~306 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=82e1d67bc69a82234d73055c5370b704234db688;p=framework%2Fuifw%2Felementary.git [elm_animator.c] added dogtag field to certify memory reference. --- diff --git a/src/lib/elm_animator.c b/src/lib/elm_animator.c index 601b0c0..7c8516a 100644 --- a/src/lib/elm_animator.c +++ b/src/lib/elm_animator.c @@ -1,4 +1,5 @@ #include +#include "elm_priv.h" /** * @addtogroup Animator Animator @@ -6,6 +7,7 @@ * * Support normalized frame value for animation. */ +#define ANIMATOR_DOGTAG 0x38 struct _Animator { @@ -21,6 +23,7 @@ struct _Animator void *animator_arg; void (*completion_op) (void *data); void *completion_arg; + unsigned char dogtag; Eina_Bool auto_reverse:1; Eina_Bool on_animating:1; }; @@ -33,7 +36,7 @@ static unsigned int _animator_compute_reverse_repeat_count(unsigned int cnt); static unsigned int _animator_compute_no_reverse_repeat_count(unsigned int cnt); static int _animator_animate_cb(void *data); static void _delete_animator(Elm_Animator *animator); -//static void _animator_parent_del(void *data); +static void _animator_parent_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__); static unsigned int _animator_compute_reverse_repeat_count(unsigned int cnt) @@ -88,7 +91,7 @@ static int _animator_animate_cb(void *data) { Elm_Animator *animator = (Elm_Animator *) data; - double elapsed_time, frame, cur_time; + double elapsed_time, frame; animator->cur_time = ecore_loop_time_get(); @@ -129,14 +132,14 @@ _animator_animate_cb(void *data) return ECORE_CALLBACK_RENEW; } -/* + static void -_animator_parent_del(void *data) +_animator_parent_del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event __UNUSED__) { Elm_Animator *animator = data; elm_animator_del(data); } -*/ + /** * Get the value of reverse mode. * @@ -281,19 +284,21 @@ elm_animator_operation_callback_set(Elm_Animator *animator, EAPI Elm_Animator * elm_animator_add(Evas_Object *parent) { - Elm_Animator *animator = calloc(1, sizeof(Elm_Animator)); + Elm_Animator *animator = ELM_NEW(Elm_Animator); if (!animator) return NULL; + elm_animator_auto_reverse_set(animator, EINA_FALSE); elm_animator_curve_style_set(animator, ELM_ANIMATOR_CURVE_LINEAR); -/* if (parent) { + if (parent) { evas_object_event_callback_add(parent, EVAS_CALLBACK_DEL, _animator_parent_del, animator); - } */ + } animator->parent = parent; + animator->dogtag = ANIMATOR_DOGTAG; return animator; } @@ -324,15 +329,17 @@ elm_animator_operating_get(Elm_Animator *animator) EAPI void elm_animator_del(Elm_Animator *animator) { - if (!animator) - return; + if(animator->dogtag != ANIMATOR_DOGTAG) { + return; + } _delete_animator(animator); -/* if(animator->parent) { + if(animator->parent) { evas_object_event_callback_del(animator->parent, EVAS_CALLBACK_DEL, _animator_parent_del); - } */ + } + memset(animator, 0x0, sizeof(Elm_Animator)); free(animator); }