aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Arrskog <topfs2@xbmc.org>2011-05-04 18:06:11 +0200
committerTobias Arrskog <topfs2@xbmc.org>2011-05-05 09:36:48 +0200
commit25604db2b857bf54f6f0057e70d6ea126cac03c2 (patch)
tree1dc89c0930b0602ad70814648cf1dd92d069eed8
parent96649b66f832f8f17d5d412661949eea3d24c8b5 (diff)
Added const operator[] to CVariant
-rw-r--r--xbmc/utils/Variant.cpp16
-rw-r--r--xbmc/utils/Variant.h2
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);