Index: third_party/WebKit/Source/core/dom/DOMMatrix.cpp |
diff --git a/third_party/WebKit/Source/core/dom/DOMMatrix.cpp b/third_party/WebKit/Source/core/dom/DOMMatrix.cpp |
index 59c6ae4412f04aa6c0f8c2c0e4fb043a1bee1217..96e8451e42629e740f87e0ae0a1bba4ba0926d96 100644 |
--- a/third_party/WebKit/Source/core/dom/DOMMatrix.cpp |
+++ b/third_party/WebKit/Source/core/dom/DOMMatrix.cpp |
@@ -39,8 +39,15 @@ DOMMatrix* DOMMatrix::create(Vector<double> sequence, |
return new DOMMatrix(sequence, sequence.size()); |
} |
-DOMMatrix* DOMMatrix::fromFloat32Array(DOMFloat32Array* float32Array, |
- ExceptionState& exceptionState) { |
+DOMMatrix* DOMMatrix::fromFloat32Array( |
+ const MaybeShared<DOMFloat32Array>& maybeShared, |
+ ExceptionState& exceptionState) { |
+ if (maybeShared.isShared()) { |
+ exceptionState.throwTypeError( |
+ "The Float32Array must not be backed by a SharedArrayBuffer."); |
+ return nullptr; |
+ } |
+ DOMFloat32Array* float32Array = maybeShared.viewNotShared(); |
if (float32Array->length() != 6 && float32Array->length() != 16) { |
exceptionState.throwTypeError( |
"The sequence must contain 6 elements for a 2D matrix or 16 elements " |
@@ -50,8 +57,15 @@ DOMMatrix* DOMMatrix::fromFloat32Array(DOMFloat32Array* float32Array, |
return new DOMMatrix(float32Array->data(), float32Array->length()); |
} |
-DOMMatrix* DOMMatrix::fromFloat64Array(DOMFloat64Array* float64Array, |
- ExceptionState& exceptionState) { |
+DOMMatrix* DOMMatrix::fromFloat64Array( |
+ const MaybeShared<DOMFloat64Array>& maybeShared, |
+ ExceptionState& exceptionState) { |
+ if (maybeShared.isShared()) { |
+ exceptionState.throwTypeError( |
+ "The Float64Array must not be backed by a SharedArrayBuffer."); |
+ return nullptr; |
+ } |
+ DOMFloat64Array* float64Array = maybeShared.viewNotShared(); |
if (float64Array->length() != 6 && float64Array->length() != 16) { |
exceptionState.throwTypeError( |
"The sequence must contain 6 elements for a 2D matrix or 16 elements " |