| Index: third_party/WebKit/Source/modules/encoding/TextEncoder.cpp
|
| diff --git a/third_party/WebKit/Source/modules/encoding/TextEncoder.cpp b/third_party/WebKit/Source/modules/encoding/TextEncoder.cpp
|
| index fdb5fc5c4fbd6c3b49a1f4651409ff31baececfc..0cf6d0f07074a810001a1555bc70e9bfc9a35f36 100644
|
| --- a/third_party/WebKit/Source/modules/encoding/TextEncoder.cpp
|
| +++ b/third_party/WebKit/Source/modules/encoding/TextEncoder.cpp
|
| @@ -73,7 +73,7 @@ String TextEncoder::encoding() const
|
| return name;
|
| }
|
|
|
| -PassRefPtr<DOMUint8Array> TextEncoder::encode(const String& input)
|
| +PassRefPtr<DOMUint8Array> TextEncoder::encode(const String& input, ExceptionState& exceptionState)
|
| {
|
| CString result;
|
| if (input.is8Bit())
|
| @@ -84,7 +84,12 @@ PassRefPtr<DOMUint8Array> TextEncoder::encode(const String& input)
|
| const char* buffer = result.data();
|
| const unsigned char* unsignedBuffer = reinterpret_cast<const unsigned char*>(buffer);
|
|
|
| - return DOMUint8Array::create(unsignedBuffer, result.length());
|
| + RefPtr<DOMUint8Array> output = DOMUint8Array::createOrNull(unsignedBuffer, result.length());
|
| + if (!output) {
|
| + exceptionState.throwRangeError("Out of memory. Could not allocate the array for storing the encoded data.");
|
| + }
|
| +
|
| + return output.release();
|
| }
|
|
|
| } // namespace blink
|
|
|