bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=560db3957792b0dc5ca90076e88cab09b4cb877b
commit 560db3957792b0dc5ca90076e88cab09b4cb877b Author: Cedric BAIL <[email protected]> Date: Thu Nov 7 16:08:30 2019 -0800 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 <[email protected]> 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 --
