Avoid multiple lookups in Dictionary::operator[]

Updated Dictionary::operator[] to get reference to value once to avoid multiple HashMap lookups.
This commit is contained in:
aaronp64
2025-03-05 13:07:30 -05:00
parent 1753893c60
commit 7007380d0c

View File

@ -101,10 +101,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;
}
}