Преглед на файлове

Faster hash_compare for integer and string keys in dictionaries

Bartłomiej T. Listwon преди 4 години
родител
ревизия
5b4e3624f4
променени са 1 файла, в които са добавени 8 реда и са изтрити 0 реда
  1. 8 0
      core/variant.cpp

+ 8 - 0
core/variant.cpp

@@ -2789,10 +2789,18 @@ bool Variant::hash_compare(const Variant &p_variant) const {
 	}
 	}
 
 
 	switch (type) {
 	switch (type) {
+		case INT: {
+			return _data._int == p_variant._data._int;
+		} break;
+
 		case REAL: {
 		case REAL: {
 			return hash_compare_scalar(_data._real, p_variant._data._real);
 			return hash_compare_scalar(_data._real, p_variant._data._real);
 		} break;
 		} break;
 
 
+		case STRING: {
+			return *reinterpret_cast<const String *>(_data._mem) == *reinterpret_cast<const String *>(p_variant._data._mem);
+		} break;
+
 		case VECTOR2: {
 		case VECTOR2: {
 			const Vector2 *l = reinterpret_cast<const Vector2 *>(_data._mem);
 			const Vector2 *l = reinterpret_cast<const Vector2 *>(_data._mem);
 			const Vector2 *r = reinterpret_cast<const Vector2 *>(p_variant._data._mem);
 			const Vector2 *r = reinterpret_cast<const Vector2 *>(p_variant._data._mem);