Fix crash when reading Transform from native data stream
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user