diff options
author | Haoyu Qiu <timothyqiu32@gmail.com> | 2021-10-07 12:41:10 +0800 |
---|---|---|
committer | Haoyu Qiu <timothyqiu32@gmail.com> | 2021-10-07 16:31:47 +0800 |
commit | 6072f38bb1d70e27a08cb38f329da86731b89c36 (patch) | |
tree | 9eee2d5d7591419242b013f726f37c3a3a254cb3 | |
parent | 410cab4c619e2e8f9db05eed594d61751fbd92e7 (diff) |
Use loop instead of recursion when clearing proximity groups
-rw-r--r-- | scene/3d/proximity_group_3d.cpp | 10 |
1 files 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<StringName, uint32_t>::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() { |