diff options
author | Geequlim <geequlim@gmail.com> | 2020-01-13 19:23:29 +0800 |
---|---|---|
committer | Geequlim <geequlim@gmail.com> | 2020-01-13 19:23:29 +0800 |
commit | d5e1890c85374dd6637d211f1f6f5d9c1b9f3686 (patch) | |
tree | c97b990727a2fe7106117c6bf9438196895d6678 /modules/gdscript/language_server | |
parent | 269eb5f06c8874e1257137eabe121d4501758ded (diff) |
Fix infinite loop error in document link parsing
Diffstat (limited to 'modules/gdscript/language_server')
-rw-r--r-- | modules/gdscript/language_server/gdscript_extend_parser.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/modules/gdscript/language_server/gdscript_extend_parser.cpp b/modules/gdscript/language_server/gdscript_extend_parser.cpp index c8ff471401..2d4344e6f3 100644 --- a/modules/gdscript/language_server/gdscript_extend_parser.cpp +++ b/modules/gdscript/language_server/gdscript_extend_parser.cpp @@ -112,9 +112,10 @@ void ExtendGDScriptParser::update_document_links(const String &p_code) { FileAccessRef fs = FileAccess::create(FileAccess::ACCESS_RESOURCES); tokenizer.set_code(p_code); while (true) { - if (tokenizer.get_token() == GDScriptTokenizer::TK_EOF) { + GDScriptTokenizerText::Token token = tokenizer.get_token(); + if (token == GDScriptTokenizer::TK_EOF || token == GDScriptTokenizer::TK_ERROR) { break; - } else if (tokenizer.get_token() == GDScriptTokenizer::TK_CONSTANT) { + } else if (token == GDScriptTokenizer::TK_CONSTANT) { const Variant &const_val = tokenizer.get_token_constant(); if (const_val.get_type() == Variant::STRING) { String path = const_val; |