diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-20 17:42:29 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-03-20 17:42:29 +0000 |
commit | da55ed99b4bdfc14c59a1c19af713fcc85102116 (patch) | |
tree | 87cdfdfd72b44fbc62252f2089da898fa79cb1b1 /ppapi/cpp/dev/var_dictionary_dev.cc | |
parent | 47ad0a1b19604119f40e6df44ec1a0cf7840e231 (diff) | |
download | chromium_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.cc | 19 |
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 |