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