efl base class - fix warning about comparing differing sizes
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 11 Feb 2017 04:13:19 +0000 (13:13 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Sat, 11 Feb 2017 14:13:00 +0000 (23:13 +0900)
yes - we compare a difference between 2 ptrs and an index which is a
uint. the safe thing here is to promote the unit to the ptrdiff_t
type. reality is we cant have more than 2^32 cb's on an object
anyway... so this should be ok.

src/lib/eo/eo_base_class.c

index eac4bbb..2f3803a 100644 (file)
@@ -1150,7 +1150,8 @@ _eo_callbacks_sorted_insert(Efl_Object_Data *pd, Eo_Callback_Description *cb)
    // Update possible event emissions
    for (frame = pd->event_frame; frame; frame = frame->next)
      {
-        if (itr-pd->callbacks < frame->idx) frame->inserted_before++;
+        if ((itr - pd->callbacks) < (ptrdiff_t)frame->idx)
+          frame->inserted_before++;
      }
 }