jackdanielz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=1db6c55fe92b78feb2ddb27dcf1db3516231811e

commit 1db6c55fe92b78feb2ddb27dcf1db3516231811e
Author: Daniel Zaoui <[email protected]>
Date:   Tue Mar 18 08:07:14 2014 +0200

    Focus: fix segfault due to bad call to Eo function.
    
    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 | 4 ++--
 src/lib/elm_list.c    | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index 8219142..b16b7b5 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -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)
          {
diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index 478125a..893cef1 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -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)
           {

-- 


Reply via email to