[gstreamermm] Use reinterpret_cast<> to cast a GValue to a Glib::ValueBase in structure.ccg.



commit 7ef85709f6cb3c66e9569b91442220cf6b47b809
Author: José Alburquerque <jaalburqu svn gnome org>
Date:   Tue Jun 9 00:40:24 2009 -0400

    Use reinterpret_cast<> to cast a GValue to a Glib::ValueBase in structure.ccg.
---
 ChangeLog                   |    7 +++++++
 gstreamer/src/structure.ccg |   10 ++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 22868b6..d49242a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-06-09  José Alburquerque  <jaalburqu svn gnome org>
+
+	* gstreamer/src/structure.ccg: Use reinterpret_cast<> to cast a GValue
+	to a Glib::ValueBase (I didn't know this would work until I noticed a
+	conversion in glibmm which converts a GValue to a Glib::ValueBase this
+	way. :-) )
+
 2009-06-05  José Alburquerque  <jaalburqu svn gnome org>
 
 	* gstreamer/gstreamermm/value_base_type_traits.h:
diff --git a/gstreamer/src/structure.ccg b/gstreamer/src/structure.ccg
index 42c2f92..36a4f6b 100644
--- a/gstreamer/src/structure.ccg
+++ b/gstreamer/src/structure.ccg
@@ -25,16 +25,13 @@
 static gboolean
 Structure_Foreach_gstreamermm_callback(GQuark field_id, const GValue *value, void* data)
 {
-  Glib::ValueBase val_base;
-  val_base.init(value);
-
   Gst::Structure::SlotForeach* slot = static_cast<Gst::Structure::SlotForeach*>(data);
 
   #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
   #endif //GLIBMM_EXCEPTIONS_ENABLED
-    bool result = (*slot)(Glib::QueryQuark(field_id), val_base);
+    bool result = (*slot)(field_id, *reinterpret_cast<const Glib::ValueBase*>(value));
     delete slot;
     return result;
   #ifdef GLIBMM_EXCEPTIONS_ENABLED
@@ -51,16 +48,13 @@ Structure_Foreach_gstreamermm_callback(GQuark field_id, const GValue *value, voi
 static gboolean
 Structure_Map_gstreamermm_callback(GQuark field_id, GValue *value, void* data)
 {
-  Glib::ValueBase val_base;
-  val_base.init(value);
-
   Gst::Structure::SlotMap* slot = static_cast<Gst::Structure::SlotMap*>(data);
 
   #ifdef GLIBMM_EXCEPTIONS_ENABLED
   try
   {
   #endif //GLIBMM_EXCEPTIONS_ENABLED
-    bool result = (*slot)(Glib::QueryQuark(field_id), val_base);
+    bool result = (*slot)(field_id, *reinterpret_cast<Glib::ValueBase*>(value));
     delete slot;
     return result;
   #ifdef GLIBMM_EXCEPTIONS_ENABLED



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]