diff options
author | George Marques <george@gmarqu.es> | 2023-11-28 17:15:00 -0300 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2023-11-28 17:16:21 -0300 |
commit | 39e8cf891dbf3777dbcc75c5a4cb754b7e6edac0 (patch) | |
tree | fa5500b6769638fd75218ff3512c3408b83a57ba /modules/gdscript/gdscript_parser.h | |
parent | a0d764919276edfa1560a7c3d74fcd8708615398 (diff) | |
download | redot-engine-39e8cf891dbf3777dbcc75c5a4cb754b7e6edac0.tar.gz |
GDScript: Make annotations register statically in parser
So it only register the annotations once per run instead of doing it
every time a script is parsed.
Diffstat (limited to 'modules/gdscript/gdscript_parser.h')
-rw-r--r-- | modules/gdscript/gdscript_parser.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h index 4b46b98baa..42b08c3d3d 100644 --- a/modules/gdscript/gdscript_parser.h +++ b/modules/gdscript/gdscript_parser.h @@ -1358,7 +1358,7 @@ private: AnnotationAction apply = nullptr; MethodInfo info; }; - HashMap<StringName, AnnotationInfo> valid_annotations; + static HashMap<StringName, AnnotationInfo> valid_annotations; List<AnnotationNode *> annotation_stack; typedef ExpressionNode *(GDScriptParser::*ParseFunction)(ExpressionNode *p_previous_operand, bool p_can_assign); @@ -1458,7 +1458,7 @@ private: SuiteNode *parse_suite(const String &p_context, SuiteNode *p_suite = nullptr, bool p_for_lambda = false); // Annotations AnnotationNode *parse_annotation(uint32_t p_valid_targets); - bool register_annotation(const MethodInfo &p_info, uint32_t p_target_kinds, AnnotationAction p_apply, const Vector<Variant> &p_default_arguments = Vector<Variant>(), bool p_is_vararg = false); + static bool register_annotation(const MethodInfo &p_info, uint32_t p_target_kinds, AnnotationAction p_apply, const Vector<Variant> &p_default_arguments = Vector<Variant>(), bool p_is_vararg = false); bool validate_annotation_arguments(AnnotationNode *p_annotation); void clear_unused_annotations(); bool tool_annotation(const AnnotationNode *p_annotation, Node *p_target, ClassNode *p_class); |