From b6f30f1b5b525b9c3b187e16a5dd170e7f16f8b5 Mon Sep 17 00:00:00 2001 From: Gilles Roudiere Date: Sat, 10 Mar 2018 14:01:20 +0100 Subject: [PATCH] Fixes infinite loop in GridContainer (cherry picked from commit 44cb8eb3a2c0aae7a4c5b1c41d72288b027a23fe) --- scene/gui/grid_container.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scene/gui/grid_container.cpp b/scene/gui/grid_container.cpp index 2799131f7f4..99486720978 100644 --- a/scene/gui/grid_container.cpp +++ b/scene/gui/grid_container.cpp @@ -88,10 +88,10 @@ void GridContainer::_notification(int p_what) { remaining_space.width -= hsep * (max_col - 1); bool can_fit = false; - while (!can_fit) { + while (!can_fit && col_expanded.size() > 0) { // Check if all minwidth constraints are ok if we use the remaining space can_fit = true; - int max_index = 0; + int max_index = col_expanded.front()->get(); for (Set::Element *E = col_expanded.front(); E; E = E->next()) { if (col_minw[E->get()] > col_minw[max_index]) { max_index = E->get(); @@ -109,10 +109,10 @@ void GridContainer::_notification(int p_what) { } can_fit = false; - while (!can_fit) { + while (!can_fit && row_expanded.size() > 0) { // Check if all minwidth constraints are ok if we use the remaining space can_fit = true; - int max_index = 0; + int max_index = row_expanded.front()->get(); for (Set::Element *E = row_expanded.front(); E; E = E->next()) { if (row_minh[E->get()] > row_minh[max_index]) { max_index = E->get();