forked from enlightenment/efl
edje: fix animation memory leak.
if object is destructed on canvas animation, its internal resource is leaked. Here simple fix brings stopping animation before deleting obj. @fix
This commit is contained in:
parent
c0c5bc71c5
commit
461a709e7f
|
@ -1881,14 +1881,6 @@ _edje_file_del(Edje *ed)
|
|||
if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
||||
_edje_entry_real_part_shutdown(ed, rp);
|
||||
|
||||
if (rp->object)
|
||||
{
|
||||
_edje_callbacks_focus_del(rp->object, ed);
|
||||
_edje_callbacks_del(rp->object, ed);
|
||||
evas_object_del(rp->object);
|
||||
rp->object = NULL;
|
||||
}
|
||||
|
||||
if (rp->custom)
|
||||
{
|
||||
// xxx: lua2
|
||||
|
@ -1956,7 +1948,10 @@ _edje_file_del(Edje *ed)
|
|||
(rp->typedata.vector))
|
||||
{
|
||||
if (rp->typedata.vector->anim)
|
||||
efl_del(rp->typedata.vector->anim);
|
||||
{
|
||||
efl_canvas_object_animation_stop(rp->object);
|
||||
efl_del(rp->typedata.vector->anim);
|
||||
}
|
||||
if (rp->typedata.vector->lottie_virtual_file)
|
||||
eina_file_close(rp->typedata.vector->lottie_virtual_file);
|
||||
if (rp->typedata.vector->lottie_data)
|
||||
|
@ -1966,6 +1961,14 @@ _edje_file_del(Edje *ed)
|
|||
rp->typedata.vector = NULL;
|
||||
}
|
||||
|
||||
if (rp->object)
|
||||
{
|
||||
_edje_callbacks_focus_del(rp->object, ed);
|
||||
_edje_callbacks_del(rp->object, ed);
|
||||
evas_object_del(rp->object);
|
||||
rp->object = NULL;
|
||||
}
|
||||
|
||||
/* Cleanup optional part. */
|
||||
free(rp->drag);
|
||||
rp->drag = NULL;
|
||||
|
|
Loading…
Reference in New Issue