From 6a36779e89c3183b6ef58e250bcd10735736d4d8 Mon Sep 17 00:00:00 2001 From: Valentin Zagura Date: Mon, 9 Sep 2019 10:39:40 +0100 Subject: Optimized variant reference function. Optimized critical execution path in Variant::reference by removing expensive and unnecessary call to clear for atomic types. --- core/variant.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/variant.cpp b/core/variant.cpp index e7d0e58367..16bbf94c54 100644 --- a/core/variant.cpp +++ b/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; -- cgit v1.2.3