forked from enlightenment/efl
fixed a segfault in evas_object_top_get(). by cleaning up the code :)
SVN revision: 14688
This commit is contained in:
parent
40aca025df
commit
70e894091f
|
@ -315,17 +315,29 @@ Evas_Object *
|
||||||
evas_object_top_get(Evas *e)
|
evas_object_top_get(Evas *e)
|
||||||
{
|
{
|
||||||
Evas_Object *obj2 = NULL;
|
Evas_Object *obj2 = NULL;
|
||||||
|
Evas_Object_List *list;
|
||||||
|
Evas_Layer *layer;
|
||||||
|
|
||||||
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
|
||||||
return NULL;
|
return NULL;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
if ((e->layers) &&
|
|
||||||
(((Evas_Object_List *)(e->layers))->last) &&
|
list = (Evas_Object_List *) e->layers;
|
||||||
(((Evas_Layer *)(((Evas_Object_List *)(e->layers))->last))->objects) &&
|
if (!list) return NULL;
|
||||||
(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);
|
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)) ||
|
while (((obj2) && (obj2->smart.parent)) ||
|
||||||
((obj2) && (obj2->delete_me)))
|
((obj2) && (obj2->delete_me))) {
|
||||||
obj2 = evas_object_below_get_internal(obj2);
|
obj2 = evas_object_below_get_internal(obj2);
|
||||||
|
}
|
||||||
|
|
||||||
return obj2;
|
return obj2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue