瀏覽代碼

Added the missing second case for string keys

Mario Liebisch 2 年之前
父節點
當前提交
4e72e09343
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      core/variant/dictionary.cpp

+ 4 - 2
core/variant/dictionary.cpp

@@ -84,13 +84,15 @@ Variant &Dictionary::operator[](const Variant &p_key) {
 		if (p_key.get_type() == Variant::STRING_NAME) {
 		if (p_key.get_type() == Variant::STRING_NAME) {
 			const StringName *sn = VariantInternal::get_string_name(&p_key);
 			const StringName *sn = VariantInternal::get_string_name(&p_key);
 			const String &key = sn->operator String();
 			const String &key = sn->operator String();
-			if (_p->variant_map.has(key)) {
+			if (likely(_p->variant_map.has(key))) {
 				*_p->read_only = _p->variant_map[key];
 				*_p->read_only = _p->variant_map[key];
 			} else {
 			} else {
 				*_p->read_only = Variant();
 				*_p->read_only = Variant();
 			}
 			}
-		} else {
+		} else if (likely(_p->variant_map.has(p_key))) {
 			*_p->read_only = _p->variant_map[p_key];
 			*_p->read_only = _p->variant_map[p_key];
+		} else {
+			*_p->read_only = Variant();
 		}
 		}
 
 
 		return *_p->read_only;
 		return *_p->read_only;