From 5a744351ac85ea836bc0069f78db61cebe044603 Mon Sep 17 00:00:00 2001 From: MinJeong Kim Date: Tue, 6 Dec 2016 13:50:42 +0900 Subject: [PATCH] e_comp_object: fix possible infinite while loop Change-Id: Iababe49bf70ffc0b0ea1ea5562142ec15ae76253 Signed-off-by: MinJeong Kim --- src/bin/e_comp_object.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 494702d..d66a8d5 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1567,14 +1567,16 @@ _e_comp_intercept_stack_helper(E_Comp_Object *cw, Evas_Object *stack, E_Comp_Obj /* find new object for stacking if cw2 is on state of layer_pending */ if ((cw2) && (cw2->ec->layer_pending)) { - E_Client *new_stack = NULL; + E_Client *new_stack = NULL, *current_ec = NULL; + current_ec = cw2->ec; if (raising) { - while ((new_stack = e_client_below_get(cw2->ec))) + while ((new_stack = e_client_below_get(current_ec))) { if (new_stack == cw->ec) continue; if (new_stack->layer != cw2->ec->layer) break; if (!new_stack->layer_pending) break; + current_ec = new_stack; } if ((new_stack) && (new_stack->layer == cw2->ec->layer)) stack = new_stack->frame; @@ -1588,11 +1590,12 @@ _e_comp_intercept_stack_helper(E_Comp_Object *cw, Evas_Object *stack, E_Comp_Obj } else { - while ((new_stack = e_client_above_get(cw2->ec))) + while ((new_stack = e_client_above_get(current_ec))) { if (new_stack == cw->ec) continue; if (new_stack->layer != cw2->ec->layer) break; if (!new_stack->layer_pending) break; + current_ec = new_stack; } if ((new_stack) && (new_stack->layer == cw2->ec->layer)) stack = new_stack->frame; -- 2.7.4