Răsfoiți Sursa

Keep Variant type after zero()

kobewi 1 an în urmă
părinte
comite
275e9d7028
1 a modificat fișierele cu 6 adăugiri și 0 ștergeri
  1. 6 0
      core/variant/variant.cpp

+ 6 - 0
core/variant/variant.cpp

@@ -1291,7 +1291,13 @@ void Variant::zero() {
 			break;
 
 		default:
+			Type prev_type = type;
 			this->clear();
+			if (type != prev_type) {
+				// clear() changes type to NIL, so it needs to be restored.
+				Callable::CallError ce;
+				Variant::construct(prev_type, *this, nullptr, 0, ce);
+			}
 			break;
 	}
 }