| Index: third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp
|
| diff --git a/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp b/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp
|
| index 9af8a7808228d9e8c3bcbba3452c4e762254b06b..f7e7ac52ddc031401e8f6d57145306db43ea3679 100644
|
| --- a/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp
|
| +++ b/third_party/WebKit/Source/bindings/core/v8/SerializedScriptValue.cpp
|
| @@ -58,11 +58,44 @@
|
|
|
| namespace blink {
|
|
|
| +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create()
|
| +{
|
| + return adoptRef(new SerializedScriptValue);
|
| +}
|
| +
|
| +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const String& data)
|
| +{
|
| + return adoptRef(new SerializedScriptValue(data));
|
| +}
|
| +
|
| +PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(const char* data, size_t length)
|
| +{
|
| + if (!data)
|
| + return create();
|
| +
|
| + // Decode wire data from big endian to host byte order.
|
| + DCHECK(!(length % sizeof(UChar)));
|
| + size_t stringLength = length / sizeof(UChar);
|
| + StringBuffer<UChar> buffer(stringLength);
|
| + const UChar* src = reinterpret_cast<const UChar*>(data);
|
| + UChar* dst = buffer.characters();
|
| + for (size_t i = 0; i < stringLength; i++)
|
| + dst[i] = ntohs(src[i]);
|
| +
|
| + return adoptRef(new SerializedScriptValue(String::adopt(buffer)));
|
| +}
|
| +
|
| SerializedScriptValue::SerializedScriptValue()
|
| : m_externallyAllocatedMemory(0)
|
| {
|
| }
|
|
|
| +SerializedScriptValue::SerializedScriptValue(const String& wireData)
|
| + : m_data(wireData.isolatedCopy())
|
| + , m_externallyAllocatedMemory(0)
|
| +{
|
| +}
|
| +
|
| SerializedScriptValue::~SerializedScriptValue()
|
| {
|
| // If the allocated memory was not registered before, then this class is likely
|
| @@ -215,12 +248,6 @@ void SerializedScriptValue::transferArrayBuffers(v8::Isolate* isolate, const Arr
|
| m_arrayBufferContentsArray = std::move(contents);
|
| }
|
|
|
| -SerializedScriptValue::SerializedScriptValue(const String& wireData)
|
| - : m_externallyAllocatedMemory(0)
|
| -{
|
| - m_data = wireData.isolatedCopy();
|
| -}
|
| -
|
| v8::Local<v8::Value> SerializedScriptValue::deserialize(MessagePortArray* messagePorts)
|
| {
|
| return deserialize(v8::Isolate::GetCurrent(), messagePorts, 0);
|
|
|