Blob Blame History Raw
--- branches/RHYTHMBOX-0_10/metadata/rb-metadata-gst.c	2007/04/21 13:16:42	5054
+++ branches/RHYTHMBOX-0_10/metadata/rb-metadata-gst.c	2007/06/03 02:20:08	5146
@@ -665,7 +665,6 @@
 		 * and then remove leading and trailing whitespace.
 		 */
 		char *str;
-		const char *old_str;
 
 		str = g_value_dup_string (newval);
 
@@ -680,15 +679,20 @@
 
 		/* Check whether we have a shorter duplicate tag,
 		 * Doesn't work with non-normalised UTF-8 strings */
-		old_str = g_value_get_string (val);
-		if (old_str != NULL
-		    && g_utf8_strlen (old_str, -1) > g_utf8_strlen (str, -1)) {
-			if (g_str_has_prefix (old_str, str) != FALSE) {
-				rb_debug ("Got shorter duplicate tag");
-				g_free (str);
-				g_value_unset (newval);
-				g_free (newval);
-				return;
+		val = g_hash_table_lookup (md->priv->metadata,
+					   GINT_TO_POINTER (field));
+		if (val != NULL) {
+			const char *old_str;
+			old_str = g_value_get_string (val);
+			if (old_str != NULL
+			    && g_utf8_strlen (old_str, -1) > g_utf8_strlen (str, -1)) {
+				if (g_str_has_prefix (old_str, str) != FALSE) {
+					rb_debug ("Got shorter duplicate tag");
+					g_free (str);
+					g_value_unset (newval);
+					g_free (newval);
+					return;
+				}
 			}
 		}
 		g_value_take_string (newval, str);