summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_object_main.c
diff options
context:
space:
mode:
authorTom Hacohen <tom@stosb.com>2013-11-26 12:16:22 +0000
committerTom Hacohen <tom@stosb.com>2013-11-26 12:16:22 +0000
commit8bba92fbca7c721a7582b098698404e491f44941 (patch)
tree2a5b401ffd502ec495b909c94bc059a8d2c06577 /src/lib/evas/canvas/evas_object_main.c
parentd6ac2464bb8146c0b360adbad8a26f920a7b0394 (diff)
Evas object: Set manual_free to false once obj is detached from canvas.
This means unref will really free the object instead of just let it linger in memory once the object is unrefed. This is also correct because once detached from the canvas, Evas has nothing to do with the object and it shouldn't need the manual free anymore.
Diffstat (limited to '')
-rw-r--r--src/lib/evas/canvas/evas_object_main.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c
index 233bd416cf..24386afc25 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -196,7 +196,11 @@ evas_object_free(Evas_Object *eo_obj, int clean_layer)
196 eina_cow_free(evas_object_state_cow, (const Eina_Cow_Data**) &obj->prev); 196 eina_cow_free(evas_object_state_cow, (const Eina_Cow_Data**) &obj->prev);
197 eo_data_unref(eo_obj, obj->private_data); 197 eo_data_unref(eo_obj, obj->private_data);
198 obj->private_data = NULL; 198 obj->private_data = NULL;
199 eo_manual_free(eo_obj); 199
200 /* Try to manual free, and if it fails, unset it so the next unref will
201 * actually free the object. */
202 if (!eo_manual_free(eo_obj))
203 eo_manual_free_set(eo_obj, EINA_FALSE);
200} 204}
201 205
202void 206void