Index: third_party/WebKit/Source/platform/JSONValues.cpp |
diff --git a/third_party/WebKit/Source/platform/JSONValues.cpp b/third_party/WebKit/Source/platform/JSONValues.cpp |
index 2dbca3a27ae8e0f1e09bbf1df168da8577bac1d4..3b1ef7b8e6274f8873bc4e343757a90ba25e6a98 100644 |
--- a/third_party/WebKit/Source/platform/JSONValues.cpp |
+++ b/third_party/WebKit/Source/platform/JSONValues.cpp |
@@ -134,26 +134,6 @@ bool JSONValue::asString(String*) const |
return false; |
} |
-bool JSONValue::asObject(RefPtr<JSONObject>*) |
-{ |
- return false; |
-} |
- |
-bool JSONValue::asArray(RefPtr<JSONArray>*) |
-{ |
- return false; |
-} |
- |
-PassRefPtr<JSONObject> JSONValue::asObject() |
-{ |
- return nullptr; |
-} |
- |
-PassRefPtr<JSONArray> JSONValue::asArray() |
-{ |
- return nullptr; |
-} |
- |
String JSONValue::toJSONString() const |
{ |
StringBuilder result; |
@@ -264,75 +244,57 @@ void JSONString::writeJSON(StringBuilder* output) const |
doubleQuoteStringForJSON(m_stringValue, output); |
} |
-JSONObjectBase::~JSONObjectBase() |
+JSONObject::~JSONObject() |
{ |
} |
-bool JSONObjectBase::asObject(RefPtr<JSONObject>* output) |
-{ |
- static_assert(sizeof(JSONObject) == sizeof(JSONObjectBase), "cannot cast"); |
- *output = static_cast<JSONObject*>(this); |
- return true; |
-} |
- |
-PassRefPtr<JSONObject> JSONObjectBase::asObject() |
-{ |
- return openAccessors(); |
-} |
- |
-void JSONObjectBase::setBoolean(const String& name, bool value) |
+void JSONObject::setBoolean(const String& name, bool value) |
{ |
setValue(name, JSONBasicValue::create(value)); |
} |
-void JSONObjectBase::setNumber(const String& name, double value) |
+void JSONObject::setNumber(const String& name, double value) |
{ |
setValue(name, JSONBasicValue::create(value)); |
} |
-void JSONObjectBase::setString(const String& name, const String& value) |
+void JSONObject::setString(const String& name, const String& value) |
{ |
setValue(name, JSONString::create(value)); |
} |
-void JSONObjectBase::setValue(const String& name, PassRefPtr<JSONValue> value) |
+void JSONObject::setValue(const String& name, PassRefPtr<JSONValue> value) |
{ |
ASSERT(value); |
if (m_data.set(name, value).isNewEntry) |
m_order.append(name); |
} |
-void JSONObjectBase::setObject(const String& name, PassRefPtr<JSONObject> value) |
+void JSONObject::setObject(const String& name, PassRefPtr<JSONObject> value) |
{ |
ASSERT(value); |
if (m_data.set(name, value).isNewEntry) |
m_order.append(name); |
} |
-void JSONObjectBase::setArray(const String& name, PassRefPtr<JSONArray> value) |
+void JSONObject::setArray(const String& name, PassRefPtr<JSONArray> value) |
{ |
ASSERT(value); |
if (m_data.set(name, value).isNewEntry) |
m_order.append(name); |
} |
-JSONObject* JSONObjectBase::openAccessors() |
-{ |
- static_assert(sizeof(JSONObject) == sizeof(JSONObjectBase), "cannot cast"); |
- return static_cast<JSONObject*>(this); |
-} |
- |
-JSONObjectBase::iterator JSONObjectBase::find(const String& name) |
+JSONObject::iterator JSONObject::find(const String& name) |
{ |
return m_data.find(name); |
} |
-JSONObjectBase::const_iterator JSONObjectBase::find(const String& name) const |
+JSONObject::const_iterator JSONObject::find(const String& name) const |
{ |
return m_data.find(name); |
} |
-bool JSONObjectBase::getBoolean(const String& name, bool* output) const |
+bool JSONObject::getBoolean(const String& name, bool* output) const |
{ |
RefPtr<JSONValue> value = get(name); |
if (!value) |
@@ -340,7 +302,7 @@ bool JSONObjectBase::getBoolean(const String& name, bool* output) const |
return value->asBoolean(output); |
} |
-bool JSONObjectBase::getString(const String& name, String* output) const |
+bool JSONObject::getString(const String& name, String* output) const |
{ |
RefPtr<JSONValue> value = get(name); |
if (!value) |
@@ -348,23 +310,17 @@ bool JSONObjectBase::getString(const String& name, String* output) const |
return value->asString(output); |
} |
-PassRefPtr<JSONObject> JSONObjectBase::getObject(const String& name) const |
+PassRefPtr<JSONObject> JSONObject::getObject(const String& name) const |
{ |
- RefPtr<JSONValue> value = get(name); |
- if (!value) |
- return nullptr; |
- return value->asObject(); |
+ return JSONObject::cast(get(name)); |
} |
-PassRefPtr<JSONArray> JSONObjectBase::getArray(const String& name) const |
+PassRefPtr<JSONArray> JSONObject::getArray(const String& name) const |
{ |
- RefPtr<JSONValue> value = get(name); |
- if (!value) |
- return nullptr; |
- return value->asArray(); |
+ return JSONArray::cast(get(name)); |
} |
-PassRefPtr<JSONValue> JSONObjectBase::get(const String& name) const |
+PassRefPtr<JSONValue> JSONObject::get(const String& name) const |
{ |
Dictionary::const_iterator it = m_data.find(name); |
if (it == m_data.end()) |
@@ -372,14 +328,14 @@ PassRefPtr<JSONValue> JSONObjectBase::get(const String& name) const |
return it->value; |
} |
-bool JSONObjectBase::booleanProperty(const String& name, bool defaultValue) const |
+bool JSONObject::booleanProperty(const String& name, bool defaultValue) const |
{ |
bool result = defaultValue; |
getBoolean(name, &result); |
return result; |
} |
-void JSONObjectBase::remove(const String& name) |
+void JSONObject::remove(const String& name) |
{ |
m_data.remove(name); |
for (size_t i = 0; i < m_order.size(); ++i) { |
@@ -390,7 +346,7 @@ void JSONObjectBase::remove(const String& name) |
} |
} |
-void JSONObjectBase::writeJSON(StringBuilder* output) const |
+void JSONObject::writeJSON(StringBuilder* output) const |
{ |
output->append('{'); |
for (size_t i = 0; i < m_order.size(); ++i) { |
@@ -405,7 +361,7 @@ void JSONObjectBase::writeJSON(StringBuilder* output) const |
output->append('}'); |
} |
-void JSONObjectBase::prettyWriteJSONInternal(StringBuilder* output, int depth) const |
+void JSONObject::prettyWriteJSONInternal(StringBuilder* output, int depth) const |
{ |
output->appendLiteral("{\n"); |
for (size_t i = 0; i < m_order.size(); ++i) { |
@@ -423,31 +379,18 @@ void JSONObjectBase::prettyWriteJSONInternal(StringBuilder* output, int depth) c |
output->append('}'); |
} |
-JSONObjectBase::JSONObjectBase() |
+JSONObject::JSONObject() |
: JSONValue(TypeObject) |
, m_data() |
, m_order() |
{ |
} |
-JSONArrayBase::~JSONArrayBase() |
-{ |
-} |
- |
-bool JSONArrayBase::asArray(RefPtr<JSONArray>* output) |
-{ |
- static_assert(sizeof(JSONArrayBase) == sizeof(JSONArray), "cannot cast"); |
- *output = static_cast<JSONArray*>(this); |
- return true; |
-} |
- |
-PassRefPtr<JSONArray> JSONArrayBase::asArray() |
+JSONArray::~JSONArray() |
{ |
- static_assert(sizeof(JSONArrayBase) == sizeof(JSONArray), "cannot cast"); |
- return static_cast<JSONArray*>(this); |
} |
-void JSONArrayBase::writeJSON(StringBuilder* output) const |
+void JSONArray::writeJSON(StringBuilder* output) const |
{ |
output->append('['); |
for (Vector<RefPtr<JSONValue>>::const_iterator it = m_data.begin(); it != m_data.end(); ++it) { |
@@ -458,7 +401,7 @@ void JSONArrayBase::writeJSON(StringBuilder* output) const |
output->append(']'); |
} |
-void JSONArrayBase::prettyWriteJSONInternal(StringBuilder* output, int depth) const |
+void JSONArray::prettyWriteJSONInternal(StringBuilder* output, int depth) const |
{ |
output->append('['); |
bool lastInsertedNewLine = false; |
@@ -488,51 +431,51 @@ void JSONArrayBase::prettyWriteJSONInternal(StringBuilder* output, int depth) co |
output->append(']'); |
} |
-JSONArrayBase::JSONArrayBase() |
+JSONArray::JSONArray() |
: JSONValue(TypeArray) |
, m_data() |
{ |
} |
-void JSONArrayBase::pushBoolean(bool value) |
+void JSONArray::pushBoolean(bool value) |
{ |
m_data.append(JSONBasicValue::create(value)); |
} |
-void JSONArrayBase::pushInt(int value) |
+void JSONArray::pushInt(int value) |
{ |
m_data.append(JSONBasicValue::create(value)); |
} |
-void JSONArrayBase::pushNumber(double value) |
+void JSONArray::pushNumber(double value) |
{ |
m_data.append(JSONBasicValue::create(value)); |
} |
-void JSONArrayBase::pushString(const String& value) |
+void JSONArray::pushString(const String& value) |
{ |
m_data.append(JSONString::create(value)); |
} |
-void JSONArrayBase::pushValue(PassRefPtr<JSONValue> value) |
+void JSONArray::pushValue(PassRefPtr<JSONValue> value) |
{ |
ASSERT(value); |
m_data.append(value); |
} |
-void JSONArrayBase::pushObject(PassRefPtr<JSONObject> value) |
+void JSONArray::pushObject(PassRefPtr<JSONObject> value) |
{ |
ASSERT(value); |
m_data.append(value); |
} |
-void JSONArrayBase::pushArray(PassRefPtr<JSONArray> value) |
+void JSONArray::pushArray(PassRefPtr<JSONArray> value) |
{ |
ASSERT(value); |
m_data.append(value); |
} |
-PassRefPtr<JSONValue> JSONArrayBase::get(size_t index) |
+PassRefPtr<JSONValue> JSONArray::get(size_t index) |
{ |
ASSERT_WITH_SECURITY_IMPLICATION(index < m_data.size()); |
return m_data[index]; |