eo: correctly flag allocated memory

sometimes there is the chance that we need to allocate memory depending
on the functions that are defined, not on the types that are available.
However, even if this should only happen in error cases and on mixins,
we should ensure that this is all correctly freed flagged.

Due to the correct flagging here, we are not copying the memory later on
in a wrong way.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11576
This commit is contained in:
Marcel Hollerbach 2020-03-24 14:40:11 +01:00
parent 1b058695f5
commit 9762d75dc4
1 changed files with 2 additions and 0 deletions

View File

@ -992,11 +992,13 @@ efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *object_
{
/* this is when a mixin implemets a regular api, we just prepare a empty node, the rest will be implemented later */
_vtable_prepare_empty_node(&klass->vtable, required_klass->vtable.chain[class_id].count, class_id);
hitmap[class_id] = EINA_TRUE;
}
else
{
ERR("There is an API implemented, whoms type is not part of this class. %s vs. %s", klass->desc->name, required_klass->desc->name);
_vtable_take_over(&klass->vtable, &required_klass->vtable);
hitmap[class_id] = EINA_TRUE;
}
}