Ver código fonte

Optimized variant reference function.
Optimized critical execution path in Variant::reference by removing expensive and unnecessary call to clear for atomic types.

Valentin Zagura 6 anos atrás
pai
commit
6a36779e89
1 arquivos alterados com 9 adições e 1 exclusões
  1. 9 1
      core/variant.cpp

+ 9 - 1
core/variant.cpp

@@ -910,7 +910,15 @@ bool Variant::is_one() const {
 
 void Variant::reference(const Variant &p_variant) {
 
-	clear();
+	switch (type) {
+		case NIL:
+		case BOOL:
+		case INT:
+		case REAL:
+			break;
+		default:
+			clear();
+	}
 
 	type = p_variant.type;