diff --git a/modules/gdscript/gd_editor.cpp b/modules/gdscript/gd_editor.cpp index 41caaa0ddd0..09f193706c7 100644 --- a/modules/gdscript/gd_editor.cpp +++ b/modules/gdscript/gd_editor.cpp @@ -1165,7 +1165,7 @@ static void _find_identifiers(GDCompletionContext& context,int p_line,bool p_onl const GDParser::ClassNode *clss=context._class; - bool _static=context.function->_static; + bool _static=context.function && context.function->_static; while(clss) { GDCompletionContext c = context; diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index f727512ff55..f79f3ee44a5 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -2757,6 +2757,9 @@ Error GDParser::parse_bytecode(const Vector &p_bytecode,const String& p completion_class=NULL; completion_function=NULL; completion_block=NULL; + current_block=NULL; + current_class=NULL; + current_function=NULL; self_path=p_self_path; GDTokenizerBuffer *tb = memnew( GDTokenizerBuffer ); @@ -2776,6 +2779,10 @@ Error GDParser::parse(const String& p_code, const String& p_base_path, bool p_ju completion_class=NULL; completion_function=NULL; completion_block=NULL; + current_block=NULL; + current_class=NULL; + + current_function=NULL; self_path=p_self_path; GDTokenizerText *tt = memnew( GDTokenizerText ); @@ -2811,6 +2818,10 @@ void GDParser::clear() { completion_class=NULL; completion_function=NULL; completion_block=NULL; + current_block=NULL; + current_class=NULL; + + current_function=NULL; validating=false; error_set=false;