diff options
| author | Steve Block <steveblock@google.com> | 2011-05-18 13:36:51 +0100 |
|---|---|---|
| committer | Steve Block <steveblock@google.com> | 2011-05-24 15:38:28 +0100 |
| commit | 2fc2651226baac27029e38c9d6ef883fa32084db (patch) | |
| tree | e396d4bf89dcce6ed02071be66212495b1df1dec /Source/WebCore/bindings/v8/SerializedScriptValue.cpp | |
| parent | b3725cedeb43722b3b175aaeff70552e562d2c94 (diff) | |
| download | external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.zip external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.gz external_webkit-2fc2651226baac27029e38c9d6ef883fa32084db.tar.bz2 | |
Merge WebKit at r78450: Initial merge by git.
Change-Id: I6d3e5f1f868ec266a0aafdef66182ddc3f265dc1
Diffstat (limited to 'Source/WebCore/bindings/v8/SerializedScriptValue.cpp')
| -rw-r--r-- | Source/WebCore/bindings/v8/SerializedScriptValue.cpp | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/Source/WebCore/bindings/v8/SerializedScriptValue.cpp b/Source/WebCore/bindings/v8/SerializedScriptValue.cpp index 666e619..1c5e4e7 100644 --- a/Source/WebCore/bindings/v8/SerializedScriptValue.cpp +++ b/Source/WebCore/bindings/v8/SerializedScriptValue.cpp @@ -1118,12 +1118,15 @@ PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(v8::Handle<v8::V PassRefPtr<SerializedScriptValue> SerializedScriptValue::createFromWire(String data) { - return adoptRef(new SerializedScriptValue(data, WireData)); + return adoptRef(new SerializedScriptValue(data)); } PassRefPtr<SerializedScriptValue> SerializedScriptValue::create(String data) { - return adoptRef(new SerializedScriptValue(data, StringValue)); + Writer writer; + writer.writeWebCoreString(data); + String wireData = StringImpl::adopt(writer.data()); + return adoptRef(new SerializedScriptValue(wireData)); } PassRefPtr<SerializedScriptValue> SerializedScriptValue::create() @@ -1133,19 +1136,31 @@ PassRefPtr<SerializedScriptValue> SerializedScriptValue::create() SerializedScriptValue* SerializedScriptValue::nullValue() { - DEFINE_STATIC_LOCAL(RefPtr<SerializedScriptValue>, nullValue, (SerializedScriptValue::create())); + DEFINE_STATIC_LOCAL(RefPtr<SerializedScriptValue>, nullValue, (0)); + if (!nullValue) { + Writer writer; + writer.writeNull(); + String wireData = StringImpl::adopt(writer.data()); + nullValue = adoptRef(new SerializedScriptValue(wireData)); + } return nullValue.get(); } SerializedScriptValue* SerializedScriptValue::undefinedValue() { - DEFINE_STATIC_LOCAL(RefPtr<SerializedScriptValue>, undefinedValue, (SerializedScriptValue::create(v8::Undefined()))); + DEFINE_STATIC_LOCAL(RefPtr<SerializedScriptValue>, undefinedValue, (0)); + if (!undefinedValue) { + Writer writer; + writer.writeUndefined(); + String wireData = StringImpl::adopt(writer.data()); + undefinedValue = adoptRef(new SerializedScriptValue(wireData)); + } return undefinedValue.get(); } PassRefPtr<SerializedScriptValue> SerializedScriptValue::release() { - RefPtr<SerializedScriptValue> result = adoptRef(new SerializedScriptValue(m_data, WireData)); + RefPtr<SerializedScriptValue> result = adoptRef(new SerializedScriptValue(m_data)); m_data = String().crossThreadString(); return result.release(); } @@ -1167,16 +1182,9 @@ SerializedScriptValue::SerializedScriptValue(v8::Handle<v8::Value> value, bool& m_data = String(StringImpl::adopt(writer.data())).crossThreadString(); } -SerializedScriptValue::SerializedScriptValue(String data, StringDataMode mode) +SerializedScriptValue::SerializedScriptValue(String wireData) { - if (mode == WireData) - m_data = data.crossThreadString(); - else { - ASSERT(mode == StringValue); - Writer writer; - writer.writeWebCoreString(data); - m_data = String(StringImpl::adopt(writer.data())).crossThreadString(); - } + m_data = wireData.crossThreadString(); } v8::Handle<v8::Value> SerializedScriptValue::deserialize() |
