Merge pull request #103647 from aaronp64/dictionary_multiple_lookup

Avoid multiple lookups in `Dictionary::operator[]`
This commit is contained in:
Thaddeus Crews
2025-03-23 19:04:00 -05:00

View File

@ -109,10 +109,12 @@ Variant &Dictionary::operator[](const Variant &p_key) {
}
return *_p->read_only;
} else {
if (unlikely(!_p->variant_map.has(key))) {
VariantInternal::initialize(&_p->variant_map[key], _p->typed_value.type);
const uint32_t old_size = _p->variant_map.size();
Variant &value = _p->variant_map[key];
if (_p->variant_map.size() > old_size) {
VariantInternal::initialize(&value, _p->typed_value.type);
}
return _p->variant_map[key];
return value;
}
}