eo: do not null out the vtable chain of your own classes

the free methods here accidently took the top of the mro into account,
which is the class itself, which NULLed out the wrong classes.

After this, we are finally freeing the mixin vtables.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11573
This commit is contained in:
Marcel Hollerbach 2020-03-24 13:55:19 +01:00
parent cd13b40f66
commit 9738a75939
1 changed files with 2 additions and 0 deletions

View File

@ -179,6 +179,8 @@ _vtable_mro_free(const _Efl_Class *klass)
for ( ; *mro_itr ; mro_itr++)
{
const Eo_Vtable *mro_vtable = &(*mro_itr)->vtable;
if ((*mro_itr) == klass)
continue;
for (int i = 0; i < mro_vtable->size; ++i)
{
if (mro_vtable->chain[i].funcs == vtable->chain[i].funcs)