--- 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);