Skip to content

Commit e50b864

Browse files
authored
Merge pull request #98085 from dalexeev/gds-fix-typed-dict-static-default-init
GDScript: Add missing static default initialization for typed dictionaries
2 parents acc3786 + 0bc59c7 commit e50b864

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

modules/gdscript/gdscript.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,10 +693,16 @@ void GDScript::_static_default_init() {
693693
continue;
694694
}
695695
if (type.builtin_type == Variant::ARRAY && type.has_container_element_type(0)) {
696+
const GDScriptDataType element_type = type.get_container_element_type(0);
696697
Array default_value;
697-
const GDScriptDataType &element_type = type.get_container_element_type(0);
698698
default_value.set_typed(element_type.builtin_type, element_type.native_type, element_type.script_type);
699699
static_variables.write[E.value.index] = default_value;
700+
} else if (type.builtin_type == Variant::DICTIONARY && type.has_container_element_types()) {
701+
const GDScriptDataType key_type = type.get_container_element_type_or_variant(0);
702+
const GDScriptDataType value_type = type.get_container_element_type_or_variant(1);
703+
Dictionary default_value;
704+
default_value.set_typed(key_type.builtin_type, key_type.native_type, key_type.script_type, value_type.builtin_type, value_type.native_type, value_type.script_type);
705+
static_variables.write[E.value.index] = default_value;
700706
} else {
701707
Variant default_value;
702708
Callable::CallError err;

0 commit comments

Comments
 (0)