rem: g_value_set_string (value, string);
add: g_value_take_string (value, string);
context: bacon_video_widget_get_metadata_string (BaconVideoWidget * bvw,					BaconVideoWidgetMetadataType type,					GValue * value){  char *string = NULL;  gboolean res = FALSE;  g_value_init (value, G_TYPE_STRING);  if (bvw->priv->play == NULL || bvw->priv->tagcache == NULL)    {      g_value_set_string (value, NULL);      return;    }  switch (type)    {    case BVW_INFO_TITLE:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_TITLE, &string);      break;    case BVW_INFO_ARTIST:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_ARTIST, &string);      break;    case BVW_INFO_YEAR:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_DATE, &string);      break;    case BVW_INFO_VIDEO_CODEC:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_VIDEO_CODEC, &string);      break;    case BVW_INFO_AUDIO_CODEC:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     GST_TAG_AUDIO_CODEC, &string);      break;    case BVW_INFO_CDINDEX:      res = gst_tag_list_get_string (bvw->priv->tagcache,				     "discid", &string);      break;    default:      g_assert_not_reached ();    }  if (res)    g_value_set_string (value, string);  else    g_value_set_string (value, NULL);  return;}