Fix crash when reading Transform from native data stream

This commit is contained in:
Wojtek Figat
2022-11-21 15:37:17 +01:00
parent bed880248c
commit b139ebfe88
4 changed files with 8 additions and 2 deletions

View File

@@ -2268,6 +2268,11 @@ const Ray& Variant::AsRay() const
#endif
}
Transform& Variant::AsTransform()
{
return *(Transform*)AsBlob.Data;
}
const Transform& Variant::AsTransform() const
{
return *(const Transform*)AsBlob.Data;

View File

@@ -332,6 +332,7 @@ public:
const BoundingBox& AsBoundingBox() const;
Ray& AsRay();
const Ray& AsRay() const;
Transform& AsTransform();
const Transform& AsTransform() const;
const Matrix& AsMatrix() const;
Array<Variant, HeapAllocation>& AsArray();

View File

@@ -344,7 +344,7 @@ void Serialization::Deserialize(ISerializable::DeserializeStream& stream, Varian
Deserialize(value, v.AsBoundingBox(), modifier);
break;
case VariantType::Transform:
Deserialize(value, *(Transform*)v.AsBlob.Data, modifier);
Deserialize(value, v.AsTransform(), modifier);
break;
case VariantType::Ray:
Deserialize(value, v.AsRay(), modifier);

View File

@@ -438,7 +438,7 @@ void ReadStream::ReadVariant(Variant* data)
ReadBytes(&data->AsData, sizeof(Quaternion));
break;
case VariantType::Transform:
ReadTransform((Transform*)&data->AsData);
ReadTransform(&data->AsTransform());
break;
case VariantType::Rectangle:
ReadBytes(&data->AsData, sizeof(Rectangle));