Use loop instead of recursion when clearing proximity groups
This commit is contained in:
parent
410cab4c61
commit
6072f38bb1
|
@ -34,9 +34,9 @@
|
||||||
|
|
||||||
void ProximityGroup3D::_clear_groups() {
|
void ProximityGroup3D::_clear_groups() {
|
||||||
Map<StringName, uint32_t>::Element *E;
|
Map<StringName, uint32_t>::Element *E;
|
||||||
|
const int size = 16;
|
||||||
|
|
||||||
{
|
do {
|
||||||
const int size = 16;
|
|
||||||
StringName remove_list[size];
|
StringName remove_list[size];
|
||||||
E = groups.front();
|
E = groups.front();
|
||||||
int num = 0;
|
int num = 0;
|
||||||
|
@ -50,11 +50,7 @@ void ProximityGroup3D::_clear_groups() {
|
||||||
for (int i = 0; i < num; i++) {
|
for (int i = 0; i < num; i++) {
|
||||||
groups.erase(remove_list[i]);
|
groups.erase(remove_list[i]);
|
||||||
}
|
}
|
||||||
}
|
} while (E);
|
||||||
|
|
||||||
if (E) {
|
|
||||||
_clear_groups(); // call until we go through the whole list
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ProximityGroup3D::_update_groups() {
|
void ProximityGroup3D::_update_groups() {
|
||||||
|
|
Loading…
Reference in a new issue