diff --git a/src/lib/ecore/efl_boolean_model.c b/src/lib/ecore/efl_boolean_model.c index 5ac0dcaab5..552baf1096 100644 --- a/src/lib/ecore/efl_boolean_model.c +++ b/src/lib/ecore/efl_boolean_model.c @@ -282,8 +282,8 @@ _child_removed(void *data, const Efl_Event *event) // Manually shift all the byte in the buffer while (offset < byte_length) { - lookup->buffer[offset] = (lookup->buffer[offset] & upper_mask) | - ((lookup->buffer[offset] & lower_mask) << 1); + lookup->buffer[offset] = ((lookup->buffer[offset] & upper_mask) >> 1) | + (lookup->buffer[offset] & lower_mask); if (offset + 1 < byte_length) lookup->buffer[offset] |= lookup->buffer[offset + 1] & 0x1;