eo: fix missing event emission
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>
Thu, 4 May 2017 18:22:06 +0000 (20:22 +0200)
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>
Thu, 4 May 2017 18:44:42 +0000 (20:44 +0200)
commit5b8421c550da369162e23df70c4b62a77358ffc8
tree55cb02c5611df38d63d51496c9d9c02f76cbfe05
parent3633bb4f5e72612a74bf9e80cebe720700ae1f1c
eo: fix missing event emission

There have been cases where the logic of _event_callback_call break'ed
too early in the event submission.
Reason for that was the line ((const unsigned char *) desc -
(const unsigned char *) it->desc) producing a overflow.

This means the if statement

if (!legacy_compare &&
   ((const unsigned char *) desc - (const unsigned char *) it->desc) < 0)

was true while the pointer desc was smaller than it->desc, which means
the event subscription got aborted, even if it should not.

This turned out on two 32 bit maschines. And led to not rendering apps
anymore.

It was introduced by commit in 605fec91ee7.

@fix
src/lib/eo/eo_base_class.c