Enlightenment CVS committal

Author  : tsauerbeck
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_stack.c 


Log Message:
fixed a segfault in evas_object_top_get(). by cleaning up the code :)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_stack.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- evas_stack.c        14 Dec 2004 03:21:32 -0000      1.10
+++ evas_stack.c        9 May 2005 19:40:49 -0000       1.11
@@ -315,17 +315,29 @@
 evas_object_top_get(Evas *e)
 {
    Evas_Object *obj2 = NULL;
+   Evas_Object_List *list;
+   Evas_Layer *layer;
    
    MAGIC_CHECK(e, Evas, MAGIC_EVAS);
    return NULL;
    MAGIC_CHECK_END();
-   if ((e->layers) &&
-       (((Evas_Object_List *)(e->layers))->last) &&
-       (((Evas_Layer *)(((Evas_Object_List *)(e->layers))->last))->objects) &&
-       (Evas_Object *)(((Evas_List *)(((Evas_Layer *)(((Evas_Object_List 
*)(e->layers))->last))->objects))->last))
-     obj2 = (Evas_Object *)(((Evas_List *)(((Evas_Layer *)(((Evas_Object_List 
*)(e->layers))->last))->objects))->last);
+
+   list = (Evas_Object_List *) e->layers;
+   if (!list) return NULL;
+
+   layer = (Evas_Layer *) list->last;
+   if (!layer) return NULL;
+
+   list = (Evas_Object_List *) layer->objects;
+   if (!list) return NULL;
+
+   obj2 = (Evas_Object *) list->last;
+   if (!obj2) return NULL;
+
    while (((obj2) && (obj2->smart.parent)) ||
-         ((obj2) && (obj2->delete_me)))
+         ((obj2) && (obj2->delete_me))) {
      obj2 = evas_object_below_get_internal(obj2);
+   }
+
    return obj2;
 }




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to