forked from enlightenment/efl
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:
parent
d6ac2464bb
commit
8bba92fbca
|
@ -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);
|
eina_cow_free(evas_object_state_cow, (const Eina_Cow_Data**) &obj->prev);
|
||||||
eo_data_unref(eo_obj, obj->private_data);
|
eo_data_unref(eo_obj, obj->private_data);
|
||||||
obj->private_data = NULL;
|
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
|
void
|
||||||
|
|
Loading…
Reference in New Issue