gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r23251 - Extractor/src/plugins


From: gnunet
Subject: [GNUnet-SVN] r23251 - Extractor/src/plugins
Date: Thu, 16 Aug 2012 09:20:55 +0200

Author: LRN
Date: 2012-08-16 09:20:55 +0200 (Thu, 16 Aug 2012)
New Revision: 23251

Modified:
   Extractor/src/plugins/gstreamer_extractor.c
Log:
Be more picky when serializing types for unknown vals

Modified: Extractor/src/plugins/gstreamer_extractor.c
===================================================================
--- Extractor/src/plugins/gstreamer_extractor.c 2012-08-16 03:40:32 UTC (rev 
23250)
+++ Extractor/src/plugins/gstreamer_extractor.c 2012-08-16 07:20:55 UTC (rev 
23251)
@@ -847,7 +847,8 @@
 {
   PrivStruct *ps = (PrivStruct *) user_data;
   gchar *str;
-  const char *field_name = g_quark_to_string (field_id);
+  const gchar *field_name = g_quark_to_string (field_id);
+  const gchar *type_name = g_type_name (G_VALUE_TYPE (value));
 
   /* TODO: check a list of known quarks, use specific EXTRACTOR_MetaType  */
   switch (G_VALUE_TYPE (value))
@@ -856,9 +857,17 @@
     str = g_value_dup_string (value);
     break;
   case G_TYPE_UINT:
+  case G_TYPE_INT:
   case G_TYPE_DOUBLE:
+  case G_TYPE_BOOLEAN:
+    str = gst_value_serialize (value);
+    break;
   default:
-    str = gst_value_serialize (value);
+    /* This is a potential source of invalid characters */
+    /* And it also might attempt to serialize binary data - such as images. */
+    str = NULL;
+    g_print ("Will not try to serialize structure field %s (%s)\n", 
field_name, type_name);
+    break;
   }
   if (str != NULL)
   {
@@ -1164,7 +1173,9 @@
     str = g_value_dup_string (&val);
     break;
   case G_TYPE_UINT:
+  case G_TYPE_INT:
   case G_TYPE_DOUBLE:
+  case G_TYPE_BOOLEAN:
     str = gst_value_serialize (&val);
     break;
   default:
@@ -1319,9 +1330,12 @@
   PrivStruct *ps = (PrivStruct *) user_data;
   GValue val = { 0, };
   gchar *topen, *str, *tclose;
+  const gchar *type_name;
 
   gst_tag_list_copy_value (&val, tags, tag);
 
+  type_name = g_type_name (G_VALUE_TYPE (&val));
+
   switch (G_VALUE_TYPE (&val))
   {
   case G_TYPE_STRING:
@@ -1336,6 +1350,7 @@
     /* This is a potential source of invalid characters */
     /* And it also might attempt to serialize binary data - such as images. */
     str = NULL;
+    g_print ("Will not try to serialize tag %s (%s)\n", tag, type_name);
     break;
   }
   if (str != NULL)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]