From 6072f38bb1d70e27a08cb38f329da86731b89c36 Mon Sep 17 00:00:00 2001 From: Haoyu Qiu Date: Thu, 7 Oct 2021 12:41:10 +0800 Subject: [PATCH] Use loop instead of recursion when clearing proximity groups --- scene/3d/proximity_group_3d.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/scene/3d/proximity_group_3d.cpp b/scene/3d/proximity_group_3d.cpp index c8c61a9f00..23df00c1f6 100644 --- a/scene/3d/proximity_group_3d.cpp +++ b/scene/3d/proximity_group_3d.cpp @@ -34,9 +34,9 @@ void ProximityGroup3D::_clear_groups() { Map::Element *E; + const int size = 16; - { - const int size = 16; + do { StringName remove_list[size]; E = groups.front(); int num = 0; @@ -50,11 +50,7 @@ void ProximityGroup3D::_clear_groups() { for (int i = 0; i < num; i++) { groups.erase(remove_list[i]); } - } - - if (E) { - _clear_groups(); // call until we go through the whole list - } + } while (E); } void ProximityGroup3D::_update_groups() {