summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bindings/v8/SerializedScriptValue.cpp
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-05-18 13:36:51 +0100
committerSteve Block <steveblock@google.com>2011-05-24 15:38:28 +0100
commit2fc2651226baac27029e38c9d6ef883fa32084db (patch)
treee396d4bf89dcce6ed02071be66212495b1df1dec /Source/WebCore/bindings/v8/SerializedScriptValue.cpp
parentb3725cedeb43722b3b175aaeff70552e562d2c94 (diff)
downloadexternal_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.cpp36
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()