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.
This commit is contained in:
Tom Hacohen 2013-11-26 12:16:22 +00:00
parent d6ac2464bb
commit 8bba92fbca
1 changed files with 5 additions and 1 deletions

View File

@ -196,7 +196,11 @@ evas_object_free(Evas_Object *eo_obj, int clean_layer)
eina_cow_free(evas_object_state_cow, (const Eina_Cow_Data**) &obj->prev);
eo_data_unref(eo_obj, obj->private_data);
obj->private_data = NULL;
eo_manual_free(eo_obj);
/* Try to manual free, and if it fails, unset it so the next unref will
* actually free the object. */
if (!eo_manual_free(eo_obj))
eo_manual_free_set(eo_obj, EINA_FALSE);
}
void