diff options
author | Tobias Arrskog <topfs2@xbmc.org> | 2011-05-04 18:06:11 +0200 |
---|---|---|
committer | Tobias Arrskog <topfs2@xbmc.org> | 2011-05-05 09:36:48 +0200 |
commit | 25604db2b857bf54f6f0057e70d6ea126cac03c2 (patch) | |
tree | 1dc89c0930b0602ad70814648cf1dd92d069eed8 | |
parent | 96649b66f832f8f17d5d412661949eea3d24c8b5 (diff) |
Added const operator[] to CVariant
-rw-r--r-- | xbmc/utils/Variant.cpp | 16 | ||||
-rw-r--r-- | xbmc/utils/Variant.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/xbmc/utils/Variant.cpp b/xbmc/utils/Variant.cpp index 4cf3176b71..4613d39f1f 100644 --- a/xbmc/utils/Variant.cpp +++ b/xbmc/utils/Variant.cpp @@ -248,6 +248,14 @@ CVariant &CVariant::operator[](string key) return ConstNullVariant; } +const CVariant &CVariant::operator[](std::string key) const +{ + if (isObject()) + return (*m_data.map)[key]; + else + return ConstNullVariant; +} + CVariant &CVariant::operator[](unsigned int position) { if (isArray() && size() > position) @@ -256,6 +264,14 @@ CVariant &CVariant::operator[](unsigned int position) return ConstNullVariant; } +const CVariant &CVariant::operator[](unsigned int position) const +{ + if (isArray() && size() > position) + return (*m_data.array)[position]; + else + return ConstNullVariant; +} + CVariant &CVariant::operator=(const CVariant &rhs) { if (m_type == VariantTypeConstNull) diff --git a/xbmc/utils/Variant.h b/xbmc/utils/Variant.h index b18ee01a91..60300e1dd4 100644 --- a/xbmc/utils/Variant.h +++ b/xbmc/utils/Variant.h @@ -74,7 +74,9 @@ public: float asFloat(float fallback = 0.0f) const; CVariant &operator[](std::string key); + const CVariant &operator[](std::string key) const; CVariant &operator[](unsigned int position); + const CVariant &operator[](unsigned int position) const; CVariant &operator=(const CVariant &rhs); |