Kaynağa Gözat

Merge pull request #89801 from timothyqiu/lost-group

Fix heap-use-after-free when converting scene group to global
Rémi Verschelde 1 yıl önce
ebeveyn
işleme
84af65d4ba
1 değiştirilmiş dosya ile 7 ekleme ve 3 silme
  1. 7 3
      editor/groups_editor.cpp

+ 7 - 3
editor/groups_editor.cpp

@@ -157,10 +157,14 @@ void GroupsEditor::_update_groups() {
 
 	_load_scene_groups(scene_root_node);
 
-	for (const KeyValue<StringName, bool> &E : scene_groups) {
-		if (global_groups.has(E.key)) {
-			scene_groups.erase(E.key);
+	for (HashMap<StringName, bool>::Iterator E = scene_groups.begin(); E;) {
+		HashMap<StringName, bool>::Iterator next = E;
+		++next;
+
+		if (global_groups.has(E->key)) {
+			scene_groups.erase(E->key);
 		}
+		E = next;
 	}
 
 	updating_groups = false;