summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-24 14:40:11 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2020-03-24 20:41:25 +0100
commit9762d75dc4efaa380305aaff9c51b9b4ca069b7c (patch)
treea1d46d48743a4f60d3eda848a3f29726278bf29d
parent1b058695f5069933e12cd65e8a4fa4abbf01aa3c (diff)
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
-rw-r--r--src/lib/eo/eo.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index cbb3136818..f7691e353d 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -992,11 +992,13 @@ efl_class_functions_set(const Efl_Class *klass_id, const Efl_Object_Ops *object_
992 { 992 {
993 /* this is when a mixin implemets a regular api, we just prepare a empty node, the rest will be implemented later */ 993 /* this is when a mixin implemets a regular api, we just prepare a empty node, the rest will be implemented later */
994 _vtable_prepare_empty_node(&klass->vtable, required_klass->vtable.chain[class_id].count, class_id); 994 _vtable_prepare_empty_node(&klass->vtable, required_klass->vtable.chain[class_id].count, class_id);
995 hitmap[class_id] = EINA_TRUE;
995 } 996 }
996 else 997 else
997 { 998 {
998 ERR("There is an API implemented, whoms type is not part of this class. %s vs. %s", klass->desc->name, required_klass->desc->name); 999 ERR("There is an API implemented, whoms type is not part of this class. %s vs. %s", klass->desc->name, required_klass->desc->name);
999 _vtable_take_over(&klass->vtable, &required_klass->vtable); 1000 _vtable_take_over(&klass->vtable, &required_klass->vtable);
1001 hitmap[class_id] = EINA_TRUE;
1000 } 1002 }
1001 1003
1002 } 1004 }