summaryrefslogtreecommitdiffstats
path: root/ppapi/cpp/dev/var_dictionary_dev.cc
diff options
context:
space:
mode:
authoryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-20 17:42:29 +0000
committeryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-20 17:42:29 +0000
commitda55ed99b4bdfc14c59a1c19af713fcc85102116 (patch)
tree87cdfdfd72b44fbc62252f2089da898fa79cb1b1 /ppapi/cpp/dev/var_dictionary_dev.cc
parent47ad0a1b19604119f40e6df44ec1a0cf7840e231 (diff)
downloadchromium_src-da55ed99b4bdfc14c59a1c19af713fcc85102116.zip
chromium_src-da55ed99b4bdfc14c59a1c19af713fcc85102116.tar.gz
chromium_src-da55ed99b4bdfc14c59a1c19af713fcc85102116.tar.bz2
Pepper apps V2 APIs: eliminate some TODOs related to array/dict PP_Var.
BUG=None TEST=None Review URL: https://codereview.chromium.org/12712017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189336 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/cpp/dev/var_dictionary_dev.cc')
-rw-r--r--ppapi/cpp/dev/var_dictionary_dev.cc19
1 files changed, 16 insertions, 3 deletions
diff --git a/ppapi/cpp/dev/var_dictionary_dev.cc b/ppapi/cpp/dev/var_dictionary_dev.cc
index cb0ba5c..8fa3f6c 100644
--- a/ppapi/cpp/dev/var_dictionary_dev.cc
+++ b/ppapi/cpp/dev/var_dictionary_dev.cc
@@ -34,6 +34,15 @@ VarDictionary_Dev::VarDictionary_Dev(const Var& var) : Var(var) {
}
}
+VarDictionary_Dev::VarDictionary_Dev(const PP_Var& var) : Var(var) {
+ if (var.type != PP_VARTYPE_DICTIONARY) {
+ PP_NOTREACHED();
+
+ // This takes care of releasing the reference that this object holds.
+ Var::operator=(Var(Null()));
+ }
+}
+
VarDictionary_Dev::VarDictionary_Dev(const VarDictionary_Dev& other)
: Var(other) {
}
@@ -86,12 +95,16 @@ PP_Bool VarDictionary_Dev::HasKey(const Var& key) const {
return get_interface<PPB_VarDictionary_Dev_0_1>()->HasKey(var_, key.pp_var());
}
-Var VarDictionary_Dev::GetKeys() const {
+VarArray_Dev VarDictionary_Dev::GetKeys() const {
if (!has_interface<PPB_VarDictionary_Dev_0_1>())
- return Var(Null());
+ return VarArray_Dev();
- return Var(PASS_REF,
+ Var result(PASS_REF,
get_interface<PPB_VarDictionary_Dev_0_1>()->GetKeys(var_));
+ if (result.is_array())
+ return VarArray_Dev(result);
+ else
+ return VarArray_Dev();
}
} // namespace pp