| Index: Source/platform/transforms/RotateTransformOperation.cpp
|
| diff --git a/Source/platform/transforms/RotateTransformOperation.cpp b/Source/platform/transforms/RotateTransformOperation.cpp
|
| index 8a49884e2d5f333b16a52857229654b5f88df90e..c3e2b9dbaa642ebc1795be3db667ecbb0f1cc90f 100644
|
| --- a/Source/platform/transforms/RotateTransformOperation.cpp
|
| +++ b/Source/platform/transforms/RotateTransformOperation.cpp
|
| @@ -127,7 +127,11 @@ PassRefPtr<TransformOperation> RotateTransformOperation::blend(const TransformOp
|
|
|
| // Extract the result as a quaternion
|
| TransformationMatrix::DecomposedType decomp;
|
| - toT.decompose(decomp);
|
| + if (!toT.decompose(decomp)) {
|
| + // If we can't decompose, bail out of interpolation.
|
| + const RotateTransformOperation* usedOperation = progress > 0.5 ? this : fromOp;
|
| + return RotateTransformOperation::create(usedOperation->x(), usedOperation->y(), usedOperation->z(), usedOperation->angle(), Rotate3D);
|
| + }
|
|
|
| // Convert that to Axis/Angle form
|
| double x = -decomp.quaternionX;
|
|
|