| 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))
|
|
|