summaryrefslogtreecommitdiffstats
path: root/base/values.cc
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-25 14:03:30 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-25 14:03:30 +0000
commita7f1806937d541ab67e37dcc7451783679599384 (patch)
treeed879290929ef74833ca5e0af979c46a29297456 /base/values.cc
parent36d11e440238728c7854490485cc00c674a6e420 (diff)
downloadchromium_src-a7f1806937d541ab67e37dcc7451783679599384.zip
chromium_src-a7f1806937d541ab67e37dcc7451783679599384.tar.gz
chromium_src-a7f1806937d541ab67e37dcc7451783679599384.tar.bz2
base: Add AsList() function to Value API.
This function should simplify some constructions. Instead of: if (!value->IsType(Value::TYPE_LIST)) return false; ListValue* list_value = static_cast<ListValue*>(value); You can do: ListValue* list_value = value->AsList(); if (!list_value) return false; BUG=None TEST=base_unittests --gtest_filter=Values* R=evan@chromium.org,tony@chromium.org Review URL: http://codereview.chromium.org/7714004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98223 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/values.cc')
-rw-r--r--base/values.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/base/values.cc b/base/values.cc
index 17aba16..1798695 100644
--- a/base/values.cc
+++ b/base/values.cc
@@ -97,6 +97,10 @@ StringValue* Value::CreateStringValue(const string16& in_value) {
return new StringValue(in_value);
}
+ListValue* Value::AsList() {
+ return NULL;
+}
+
bool Value::GetAsBoolean(bool* out_value) const {
return false;
}
@@ -511,7 +515,7 @@ bool DictionaryValue::GetList(const std::string& path,
ListValue** out_value) const {
Value* value;
bool result = Get(path, &value);
- if (!result || !value->IsType(TYPE_LIST))
+ if (!result || !value->AsList())
return false;
if (out_value)
@@ -589,7 +593,7 @@ bool DictionaryValue::GetListWithoutPathExpansion(const std::string& key,
ListValue** out_value) const {
Value* value;
bool result = GetWithoutPathExpansion(key, &value);
- if (!result || !value->IsType(TYPE_LIST))
+ if (!result || !value->AsList())
return false;
if (out_value)
@@ -802,7 +806,7 @@ bool ListValue::GetDictionary(size_t index, DictionaryValue** out_value) const {
bool ListValue::GetList(size_t index, ListValue** out_value) const {
Value* value;
bool result = Get(index, &value);
- if (!result || !value->IsType(TYPE_LIST))
+ if (!result || !value->AsList())
return false;
if (out_value)
@@ -865,6 +869,10 @@ bool ListValue::Insert(size_t index, Value* in_value) {
return true;
}
+ListValue* ListValue::AsList() {
+ return this;
+}
+
bool ListValue::GetAsList(ListValue** out_value) {
if (out_value)
*out_value = this;