Index: third_party/WebKit/Source/core/html/ImageData.cpp |
diff --git a/third_party/WebKit/Source/core/html/ImageData.cpp b/third_party/WebKit/Source/core/html/ImageData.cpp |
index f2a9f3fab30b664efc1d527d2fbf85f76a0b059a..5e84dff62ad35fb8127906198c80d205323b7973 100644 |
--- a/third_party/WebKit/Source/core/html/ImageData.cpp |
+++ b/third_party/WebKit/Source/core/html/ImageData.cpp |
@@ -205,22 +205,30 @@ ImageData* ImageData::createForTest(const IntSize& size) { |
return new ImageData(size, byteArray); |
} |
-ImageData* ImageData::create(const IntSize& size, |
- DOMUint8ClampedArray* byteArray) { |
+ImageData* ImageData::create( |
+ const IntSize& size, |
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared) { |
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, nullptr)) |
+ return nullptr; |
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared(); |
if (!ImageData::validateConstructorArguments(kParamSize | kParamData, &size, |
- 0, 0, byteArray)) |
+ 0, 0, data)) |
return nullptr; |
- return new ImageData(size, byteArray); |
+ return new ImageData(size, data); |
} |
-ImageData* ImageData::create(const IntSize& size, |
- DOMUint8ClampedArray* byteArray, |
- const String& colorSpace) { |
+ImageData* ImageData::create( |
+ const IntSize& size, |
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared, |
+ const String& colorSpace) { |
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, nullptr)) |
+ return nullptr; |
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared(); |
if (!ImageData::validateConstructorArguments( |
- kParamSize | kParamData | kParamColorSpace, &size, 0, 0, byteArray, |
+ kParamSize | kParamData | kParamColorSpace, &size, 0, 0, data, |
&colorSpace)) |
return nullptr; |
- return new ImageData(size, byteArray, colorSpace); |
+ return new ImageData(size, data, colorSpace); |
} |
ImageData* ImageData::create(unsigned width, |
@@ -236,9 +244,13 @@ ImageData* ImageData::create(unsigned width, |
return byteArray ? new ImageData(IntSize(width, height), byteArray) : nullptr; |
} |
-ImageData* ImageData::create(DOMUint8ClampedArray* data, |
- unsigned width, |
- ExceptionState& exceptionState) { |
+ImageData* ImageData::create( |
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared, |
+ unsigned width, |
+ ExceptionState& exceptionState) { |
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState)) |
+ return nullptr; |
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared(); |
if (!ImageData::validateConstructorArguments(kParamData | kParamWidth, |
nullptr, width, 0, data, nullptr, |
&exceptionState)) |
@@ -247,10 +259,14 @@ ImageData* ImageData::create(DOMUint8ClampedArray* data, |
return new ImageData(IntSize(width, height), data); |
} |
-ImageData* ImageData::create(DOMUint8ClampedArray* data, |
- unsigned width, |
- unsigned height, |
- ExceptionState& exceptionState) { |
+ImageData* ImageData::create( |
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared, |
+ unsigned width, |
+ unsigned height, |
+ ExceptionState& exceptionState) { |
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState)) |
+ return nullptr; |
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared(); |
if (!ImageData::validateConstructorArguments( |
kParamData | kParamWidth | kParamHeight, nullptr, width, height, data, |
nullptr, &exceptionState)) |
@@ -275,10 +291,14 @@ ImageData* ImageData::createImageData(unsigned width, |
: nullptr; |
} |
-ImageData* ImageData::createImageData(DOMUint8ClampedArray* data, |
- unsigned width, |
- String colorSpace, |
- ExceptionState& exceptionState) { |
+ImageData* ImageData::createImageData( |
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared, |
+ unsigned width, |
+ String colorSpace, |
+ ExceptionState& exceptionState) { |
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState)) |
+ return nullptr; |
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared(); |
if (!ImageData::validateConstructorArguments( |
kParamData | kParamWidth | kParamColorSpace, nullptr, width, 0, data, |
&colorSpace, &exceptionState)) |
@@ -287,11 +307,15 @@ ImageData* ImageData::createImageData(DOMUint8ClampedArray* data, |
return new ImageData(IntSize(width, height), data, colorSpace); |
} |
-ImageData* ImageData::createImageData(DOMUint8ClampedArray* data, |
- unsigned width, |
- unsigned height, |
- String colorSpace, |
- ExceptionState& exceptionState) { |
+ImageData* ImageData::createImageData( |
+ const MaybeShared<DOMUint8ClampedArray>& maybeShared, |
+ unsigned width, |
+ unsigned height, |
+ String colorSpace, |
+ ExceptionState& exceptionState) { |
+ if (!ImageData::validateDataArgumentIsNotShared(maybeShared, &exceptionState)) |
+ return nullptr; |
+ DOMUint8ClampedArray* data = maybeShared.viewNotShared(); |
if (!ImageData::validateConstructorArguments( |
kParamData | kParamWidth | kParamHeight | kParamColorSpace, nullptr, |
width, height, data, &colorSpace, &exceptionState)) |