[glibmm] Variant: Have the variant_type() functions return actual types.
- From: José Alburquerque <jaalburqu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm] Variant: Have the variant_type() functions return actual types.
- Date: Thu, 13 Jan 2011 22:30:36 +0000 (UTC)
commit 1a8c6d17bea6694e3a1678d6c1de1773b48fd1c4
Author: José Alburquerque <jaalburqu svn gnome org>
Date: Thu Jan 13 17:28:03 2011 -0500
Variant: Have the variant_type() functions return actual types.
* glib/src/variant.hg: Correct the variant_type() functions of the
container derived classes to create and return actual variant types
and not abstract ones. Also use the functions in the implementation
of the existing methods.
ChangeLog | 9 +++++++++
glib/src/variant.hg | 25 ++++++++++++++-----------
2 files changed, 23 insertions(+), 11 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 6eed6ef..6317196 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2011-01-13 José Alburquerque <jaalburqu svn gnome org>
+ Variant: Have the variant_type() functions return actual types.
+
+ * glib/src/variant.hg: Correct the variant_type() functions of the
+ container derived classes to create and return actual variant types
+ and not abstract ones. Also use the functions in the implementation
+ of the existing methods.
+
+2011-01-13 José Alburquerque <jaalburqu svn gnome org>
+
DBus: Avoid errors/exceptions in callbacks due to NULL C strings.
* gio/src/dbusconnection.ccg: Modify the callbacks so that if a C
diff --git a/glib/src/variant.hg b/glib/src/variant.hg
index af42bd7..4bc6d20 100644
--- a/glib/src/variant.hg
+++ b/glib/src/variant.hg
@@ -777,7 +777,10 @@ namespace Glib
template<class K, class V>
const VariantType& Variant< std::pair<K, V> >::variant_type()
{
- static VariantType type(G_VARIANT_TYPE_DICT_ENTRY);
+ static VariantType type(
+ g_variant_type_new_dict_entry(Variant<K>::variant_type().gobj(),
+ Variant<V>::variant_type().gobj()));
+
return type;
}
@@ -819,7 +822,9 @@ std::pair<K, V> Variant< std::pair<K, V> >::get() const
template<class T>
const VariantType& Variant< std::vector<T> >::variant_type()
{
- static VariantType type(G_VARIANT_TYPE_ARRAY);
+ static VariantType type =
+ VariantType::create_array(Variant<T>::variant_type());
+
return type;
}
@@ -831,8 +836,7 @@ Variant< std::vector<T> >::create(const std::vector<T>& data)
VariantType element_variant_type = Variant<T>::variant_type();
// Get the variant type of the array.
- VariantType array_variant_type =
- VariantType::create_array(element_variant_type);
+ VariantType array_variant_type = Variant< std::vector<T> >::variant_type();
// Create a GVariantBuilder to build the array.
GVariantBuilder* builder = g_variant_builder_new(array_variant_type.gobj());
@@ -892,8 +896,7 @@ VariantIter Variant< std::vector<T> >::get_iter() const
VariantType element_variant_type = Variant<T>::variant_type();
// Get the variant type of the array.
- VariantType array_variant_type =
- VariantType::create_array(element_variant_type);
+ VariantType array_variant_type = Variant< std::vector<T> >::variant_type();
// Get the GVariantIter.
GVariantIter* g_iter = 0;
@@ -909,7 +912,9 @@ VariantIter Variant< std::vector<T> >::get_iter() const
template<class K, class V>
const VariantType& Variant< std::map<K, V> >::variant_type()
{
- static VariantType type(G_VARIANT_TYPE_DICTIONARY);
+ static VariantType type =
+ VariantType::create_array(Variant< std::pair<K, V> >::variant_type());
+
return type;
}
@@ -922,8 +927,7 @@ Variant< std::map<K, V> >::create(const std::map<K, V>& data)
Variant< std::pair<K, V> >::variant_type();
// Get the variant type of the array.
- VariantType array_variant_type =
- VariantType::create_array(element_variant_type);
+ VariantType array_variant_type = Variant< std::map<K, V> >::variant_type();
// Create a GVariantBuilder to build the array.
GVariantBuilder* builder = g_variant_builder_new(array_variant_type.gobj());
@@ -1004,8 +1008,7 @@ VariantIter Variant< std::map<K, V> >::get_iter() const
Variant< std::pair<K, V> >::variant_type();
// Get the variant type of the array.
- VariantType array_variant_type =
- VariantType::create_array(element_variant_type);
+ VariantType array_variant_type = Variant< std::map<K, V> >::variant_type();
// Get the GVariantIter.
GVariantIter* g_iter = 0;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]