Use C++ iterators for Lists in many situations

This commit is contained in:
Aaron Franke 2021-07-15 23:45:57 -04:00
parent b918c4c3ce
commit 4e6efd1b07
No known key found for this signature in database
GPG key ID: 40A1750B977E56BF
218 changed files with 2755 additions and 3004 deletions

View file

@ -103,11 +103,11 @@ void Node3D::_propagate_transform_changed(Node3D *p_origin) {
data.children_lock++;
for (List<Node3D *>::Element *E = data.children.front(); E; E = E->next()) {
if (E->get()->data.top_level_active) {
for (Node3D *&E : data.children) {
if (E->data.top_level_active) {
continue; //don't propagate to a top_level
}
E->get()->_propagate_transform_changed(p_origin);
E->_propagate_transform_changed(p_origin);
}
#ifdef TOOLS_ENABLED
if ((!data.gizmos.is_empty() || data.notify_transform) && !data.ignore_notification && !xform_change.in_list()) {
@ -527,8 +527,7 @@ void Node3D::_propagate_visibility_changed() {
}
#endif
for (List<Node3D *>::Element *E = data.children.front(); E; E = E->next()) {
Node3D *c = E->get();
for (Node3D *c : data.children) {
if (!c || !c->data.visible) {
continue;
}
@ -753,8 +752,7 @@ void Node3D::_update_visibility_parent(bool p_update_root) {
RS::get_singleton()->instance_set_visibility_parent(vi->get_instance(), data.visibility_parent);
}
for (List<Node3D *>::Element *E = data.children.front(); E; E = E->next()) {
Node3D *c = E->get();
for (Node3D *c : data.children) {
c->_update_visibility_parent(false);
}
}