Use loop instead of recursion when clearing proximity groups

This commit is contained in:
Haoyu Qiu 2021-10-07 12:41:10 +08:00
parent 410cab4c61
commit 6072f38bb1

View file

@ -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() {