HomePhabricator

evas: make objects again delete correctly

Authored by Marcel Hollerbach <mail@marcel-hollerbach.de> on Jun 14 2018, 12:23 PM.

Description

evas: make objects again delete correctly

Summary:
what here was done was fundamentally wrong, deleting the pd->object
field of a evas object after a efl_del / evas_object_del is completly
wrong. evas object lifetimes are controller with eo_manual_free, this
means, they are still alive, even after you called evas_object_del on
them. removing pd->object results in eo_menual_free calls to NULL
objects and leaking the object carrying the private data. Overall,
breaking this pd->object field and unsetting it is a very bad idea, as
its the only way that evas cleansup the object correctly.
This brings down the number of ui related leaked objects on shutdowns to
0. (YEY :))
This also fixes weird error messages on app shutdown.

fixes T6964

Reviewers: devilhorns, zmike

Reviewed By: zmike

Subscribers: cedric, committers, zmike

Tags: efl

Maniphest Tasks: T6964

Differential Revision: https://phab.enlightenment.org/D6290

Details