Explorar o código

Keep Variant type after zero()

kobewi hai 1 ano
pai
achega
275e9d7028
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  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;
 	}
 }