From 560db3957792b0dc5ca90076e88cab09b4cb877b Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 7 Nov 2019 16:08:30 -0800 Subject: [PATCH] ecore: properly handle children destruction in Efl.BooleanModel. The children removal event is happening on the parent model, so access values directly. T8358 Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D10623 --- src/lib/ecore/efl_boolean_model.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore/efl_boolean_model.c b/src/lib/ecore/efl_boolean_model.c index 3eaad886ef..5ac0dcaab5 100644 --- a/src/lib/ecore/efl_boolean_model.c +++ b/src/lib/ecore/efl_boolean_model.c @@ -258,11 +258,11 @@ _child_removed(void *data, const Efl_Event *event) Eina_Iterator *it; Eina_Array updated; - if (!pd->parent) return; + if (!pd->values) return; eina_array_step_set(&updated, sizeof (Eina_Array), 8); - it = eina_hash_iterator_data_new(pd->parent->values); + it = eina_hash_iterator_data_new(pd->values); EINA_ITERATOR_FOREACH(it, v) { Efl_Boolean_Model_Storage_Range *lookup; @@ -276,7 +276,7 @@ _child_removed(void *data, const Efl_Event *event) { unsigned char lower_mask = (((unsigned char)1) << (ev->index & 0x7)) - 1; unsigned char upper_mask = (~(((unsigned char)1) << (ev->index & 0x7))) & (~lower_mask); - unsigned char offset = (ev->index - lookup->offset) >> 3; + uint16_t offset = (ev->index - lookup->offset) >> 3; uint16_t byte_length = lookup->length >> 3; // Manually shift all the byte in the buffer