Focus: fix segfault due to bad call to Eo function.
authorDaniel Zaoui <daniel.zaoui@samsung.com>
Tue, 18 Mar 2014 06:07:14 +0000 (08:07 +0200)
committerDaniel Zaoui <daniel.zaoui@samsung.com>
Tue, 18 Mar 2014 06:14:44 +0000 (08:14 +0200)
Due to Eolian auto-generation, legacy parameters are directly
transferred to Eo functions without conversion.

In this case, is_next was Eina_Bool in legacy and Eina_Bool * in Eo.
The logic code was expecting a pointer but was receiving a Eina_Bool.

The fix consists in giving the logic code the Eina_Bool instead of the
pointer.

@fix

src/lib/elm_genlist.c
src/lib/elm_list.c

index 8219142..b16b7b5 100644 (file)
@@ -7855,13 +7855,13 @@ _elm_genlist_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_lis
    Evas_Coord *y = va_arg(*list, Evas_Coord *);
    Evas_Coord *w = va_arg(*list, Evas_Coord *);
    Evas_Coord *h = va_arg(*list, Evas_Coord *);
-   Eina_Bool *is_next = va_arg(*list, Eina_Bool *);
+   Eina_Bool is_next = va_arg(*list, int);
    Evas_Coord ox, oy, oh, item_x = 0, item_y = 0, item_w = 0, item_h = 0;
 
    Elm_Genlist_Smart_Data *sd = _pd;
    evas_object_geometry_get(obj, &ox, &oy, NULL, &oh);
 
-   if (is_next && *is_next)
+   if (is_next)
      {
        if (sd->focused_item)
          {
index 478125a..893cef1 100644 (file)
@@ -3044,11 +3044,11 @@ _elm_list_focus_highlight_geometry_get(Eo *obj EINA_UNUSED, void *_pd, va_list *
    Evas_Coord *y = va_arg(*list, Evas_Coord *);
    Evas_Coord *w = va_arg(*list, Evas_Coord *);
    Evas_Coord *h = va_arg(*list, Evas_Coord *);
-   Eina_Bool *is_next = va_arg(*list, Eina_Bool *);
+   Eina_Bool is_next = va_arg(*list, int);
 
    Elm_List_Smart_Data *sd = _pd;
 
-   if (is_next && *is_next)
+   if (is_next)
      {
         if (sd->focused_item)
           {