summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_object_image.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/evas/canvas/evas_object_image.c32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 0f2c10aa10..abcfa1729b 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -1711,10 +1711,34 @@ evas_object_image_free(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj)
1711 Eina_Rectangle *r; 1711 Eina_Rectangle *r;
1712 1712
1713 /* free obj */ 1713 /* free obj */
1714 eina_file_close(o->cur->f); 1714 if (o->cur->key)
1715 if (o->cur->key) eina_stringshare_del(o->cur->key); 1715 {
1716 if (o->cur->source) _evas_image_proxy_unset(eo_obj, obj, o); 1716 eina_stringshare_del(o->cur->key);
1717 if (o->cur->scene) _evas_image_3d_unset(eo_obj, obj, o); 1717 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1718 state_write->key = NULL;
1719 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
1720 }
1721 if (o->cur->source)
1722 {
1723 if (o->cur->source) _evas_image_proxy_unset(eo_obj, obj, o);
1724 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1725 state_write->source = NULL;
1726 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
1727 }
1728 if (o->cur->scene)
1729 {
1730 if (o->cur->scene) _evas_image_3d_unset(eo_obj, obj, o);
1731 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1732 state_write->scene = NULL;
1733 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
1734 }
1735 if (o->cur->f)
1736 {
1737 eina_file_close(o->cur->f);
1738 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
1739 state_write->f = NULL;
1740 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
1741 }
1718 if (obj->layer && obj->layer->evas) 1742 if (obj->layer && obj->layer->evas)
1719 { 1743 {
1720 if (o->engine_data && ENC) 1744 if (o->engine_data && ENC)