[sound-juicer] Remove SjMetadataMusicbraniz5Private.discid
- From: Phillip Wood <pwood src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [sound-juicer] Remove SjMetadataMusicbraniz5Private.discid
- Date: Mon, 17 Aug 2015 13:09:18 +0000 (UTC)
commit 2d924f02ba9b8f921ea0518e915096fbf0d79dcc
Author: Phillip Wood <phillip wood dunelm org uk>
Date: Sun Jul 26 14:05:29 2015 +0100
Remove SjMetadataMusicbraniz5Private.discid
priv->discid is only used in list_albums() and currently it is leaked if
list_albums() is called more than once.
https://bugzilla.gnome.org/show_bug.cgi?id=753508
libjuicer/sj-metadata-musicbrainz5.c | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
---
diff --git a/libjuicer/sj-metadata-musicbrainz5.c b/libjuicer/sj-metadata-musicbrainz5.c
index 7f81712..cfa711a 100644
--- a/libjuicer/sj-metadata-musicbrainz5.c
+++ b/libjuicer/sj-metadata-musicbrainz5.c
@@ -55,7 +55,6 @@ static char language[3];
typedef struct {
Mb5Query mb;
- DiscId *disc;
char *cdrom;
GHashTable *artist_cache;
/* Proxy */
@@ -871,6 +870,8 @@ mb5_list_albums (SjMetadata *metadata, char **url, GError **error)
const char *discid = NULL;
char buffer[1024];
int i;
+ DiscId disc = NULL;
+
g_return_val_if_fail (SJ_IS_METADATA_MUSICBRAINZ5 (metadata), NULL);
self = SJ_METADATA_MUSICBRAINZ5 (metadata);
@@ -880,26 +881,26 @@ mb5_list_albums (SjMetadata *metadata, char **url, GError **error)
return NULL;
}
- priv->disc = discid_new ();
- if (priv->disc == NULL)
- return NULL;
- if (discid_read_sparse (priv->disc, priv->cdrom, 0) == 0)
+ disc = discid_new ();
+ if (disc == NULL)
return NULL;
+ if (discid_read_sparse (disc, priv->cdrom, 0) == 0)
+ goto free_discid;
if (url != NULL)
- *url = g_strdup (discid_get_submission_url (priv->disc));
+ *url = g_strdup (discid_get_submission_url (disc));
if (g_getenv("MUSICBRAINZ_FORCE_DISC_ID")) {
discid = g_getenv("MUSICBRAINZ_FORCE_DISC_ID");
} else {
- discid = discid_get_id (priv->disc);
+ discid = discid_get_id (disc);
}
releases = mb5_query_lookup_discid(priv->mb, discid);
if (releases == NULL) {
print_musicbrainz_query_error (self, "discid", discid);
- return NULL;
+ goto free_discid;
}
if (mb5_release_list_size (releases) == 0)
@@ -968,6 +969,8 @@ artist-rels";
}
}
mb5_release_list_delete (releases);
+ free_discid:
+ discid_free (disc);
return albums;
}
@@ -1115,10 +1118,6 @@ sj_metadata_musicbrainz5_finalize (GObject *object)
mb5_query_delete (priv->mb);
priv->mb = NULL;
}
- if (priv->disc != NULL) {
- discid_free (priv->disc);
- priv->disc = NULL;
- }
g_free (priv->cdrom);
g_free (priv->proxy_host);
g_free (priv->proxy_username);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]