diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-25 14:03:30 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-25 14:03:30 +0000 |
commit | a7f1806937d541ab67e37dcc7451783679599384 (patch) | |
tree | ed879290929ef74833ca5e0af979c46a29297456 /base/values.cc | |
parent | 36d11e440238728c7854490485cc00c674a6e420 (diff) | |
download | chromium_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.cc | 14 |
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; |