rem: if (bvw->priv->last_error_message) { g_free (bvw->priv->last_error_message); bvw->priv->last_error_message = NULL; }
add: if (bvw->priv->last_error) { g_error_free (bvw->priv->last_error); bvw->priv->last_error = NULL; }
context: bacon_video_widget_open_with_subtitle (BaconVideoWidget * bvw,		const gchar * mrl, const gchar *subtitle_uri, GError ** error){  gboolean ret;  gchar buf[256];  g_return_val_if_fail (bvw != NULL, FALSE);  g_return_val_if_fail (mrl != NULL, FALSE);  g_return_val_if_fail (BACON_IS_VIDEO_WIDGET (bvw), FALSE);  g_return_val_if_fail (bvw->priv->play != NULL, FALSE);  g_return_val_if_fail (bvw->priv->mrl == NULL, FALSE);  /* hmm... */  if (bvw->priv->mrl && !strcmp (bvw->priv->mrl, mrl))    return TRUE;  /* this allows non-URI type of files in the thumbnailer and so on */  g_free (bvw->priv->mrl);  if (mrl[0] == '/') {    bvw->priv->mrl = g_strdup_printf ("file://%s", mrl);  } else {    if (strchr (mrl, ':')) {      bvw->priv->mrl = g_strdup (mrl);    } else {      if (!getcwd (buf, 255)) {	g_set_error (error, 0, 0,	     _("Failed to retrieve working directory"));	return FALSE;      }      bvw->priv->mrl = g_strdup_printf ("file://%s/%s", buf, mrl);    }  }  gst_element_set_state (GST_ELEMENT (bvw->priv->play), GST_STATE_READY);  /* Resetting last_error_message to NULL */  if (bvw->priv->last_error_message)    {      g_free (bvw->priv->last_error_message);      bvw->priv->last_error_message = NULL;    }  bvw->priv->got_redirect = FALSE;  bvw->priv->media_has_video = FALSE;  bvw->priv->stream_length = 0;  if (g_strrstr (bvw->priv->mrl, "#subtitle:")) {    gchar **uris;    uris = g_strsplit (bvw->priv->mrl, "#subtitle:", 2);    g_object_set (G_OBJECT (bvw->priv->play), "uri",                  uris[0], "suburi", uris[1], NULL);    g_strfreev (uris);  } else {    g_object_set (G_OBJECT (bvw->priv->play), "uri",		  bvw->priv->mrl, "suburi", subtitle_uri, NULL);  }  ret = (gst_element_set_state (bvw->priv->play, GST_STATE_PAUSED) ==      GST_STATE_SUCCESS);  if (!ret && !bvw->priv->got_redirect)    {      g_set_error (error, 0, 0, "%s", bvw->priv->last_error_message ?          bvw->priv->last_error_message : "Failed to open; reason unknown");      g_free (bvw->priv->mrl);      bvw->priv->mrl = NULL;    }  if (ret)    g_signal_emit (bvw, bvw_table_signals[SIGNAL_CHANNELS_CHANGE], 0);  return ret || bvw->priv->got_redirect;}