diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp index eb934da4dd3d..dbaaecf9b3d8 100644 --- a/editor/plugins/script_text_editor.cpp +++ b/editor/plugins/script_text_editor.cpp @@ -500,11 +500,14 @@ void ScriptTextEditor::_validate_script() { safe_lines.clear(); if (!script->get_language()->validate(text, script->get_path(), &fnc, &errors, &warnings, &safe_lines)) { - for (List::Element *E = errors.front(); E; E = E->next()) { + List::Element *E = errors.front(); + while (E) { + List::Element *next_E = E->next(); if ((E->get().path.is_empty() && !script->get_path().is_empty()) || E->get().path != script->get_path()) { depended_errors[E->get().path].push_back(E->get()); E->erase(); } + E = next_E; } if (errors.size() > 0) {