Revision: 2079
http://gtkpod.svn.sourceforge.net/gtkpod/?rev=2079&view=rev
Author: jcsjcs
Date: 2008-08-02 10:50:09 +0000 (Sat, 02 Aug 2008)
Log Message:
-----------
* src/file_itunesdb (gp_import_itdb): fix memory leak. Thanks to
Andrea.
* src/prefs.c (prefs_get_cfgdir): fix possible memory leak. Thanks
to Andrea.
* src/prefs.c (temp_prefs_load): fix memory leaks. Thanks to
Andrea.
* src/misc.c (load_ipod_index_prefs): fix memory leaks. Thanks to
Andrea.
Modified Paths:
--------------
gtkpod/trunk/ChangeLog
gtkpod/trunk/src/file_itunesdb.c
gtkpod/trunk/src/misc.c
gtkpod/trunk/src/prefs.c
Modified: gtkpod/trunk/ChangeLog
===================================================================
--- gtkpod/trunk/ChangeLog 2008-08-02 08:20:34 UTC (rev 2078)
+++ gtkpod/trunk/ChangeLog 2008-08-02 10:50:09 UTC (rev 2079)
@@ -1,3 +1,17 @@
+2008-0-02 Jorg Schuler <jcsjcs at users.sourceforge.net>
+
+ * src/file_itunesdb (gp_import_itdb): fix memory leak. Thanks to
+ Andrea.
+
+ * src/prefs.c (prefs_get_cfgdir): fix possible memory leak. Thanks
+ to Andrea.
+
+ * src/prefs.c (temp_prefs_load): fix memory leaks. Thanks to
+ Andrea.
+
+ * src/misc.c (load_ipod_index_prefs): fix memory leaks. Thanks to
+ Andrea.
+
2008-07-21 Jorg Schuler <jcsjcs at users.sourceforge.net>
* src/misc_confirm (on_gtkpod_delete_event): return TRUE to
Modified: gtkpod/trunk/src/file_itunesdb.c
===================================================================
--- gtkpod/trunk/src/file_itunesdb.c 2008-08-02 08:20:34 UTC (rev 2078)
+++ gtkpod/trunk/src/file_itunesdb.c 2008-08-02 10:50:09 UTC (rev 2079)
@@ -413,7 +413,7 @@
const gchar *mp, const gchar *name_off,
const gchar *name_loc)
{
- gchar *cfgdir = prefs_get_cfgdir ();
+ gchar *cfgdir;
GList *gl;
Playlist *pod_pl;
ExtraiTunesDBData *eitdb;
@@ -426,6 +426,8 @@
g_return_val_if_fail (!(type & GP_ITDB_TYPE_LOCAL) || name_loc, NULL);
g_return_val_if_fail (!(type & GP_ITDB_TYPE_IPOD) ||
(mp && name_off), NULL);
+
+ cfgdir = prefs_get_cfgdir ();
g_return_val_if_fail (cfgdir, NULL);
if (old_itdb)
@@ -502,7 +504,6 @@
}
g_free (name_ext);
g_free (name_db);
- g_free (cfgdir);
}
else
{ /* GP_ITDB_TYPE_IPOD _and_ iPod is connected */
@@ -557,6 +558,7 @@
g_free (name_db);
g_free (itunes_dir);
}
+ g_free (cfgdir);
if (!itdb)
{
@@ -1972,7 +1974,7 @@
}
}
}
- if (success && cfgdir)
+ if (success)
{ /* copy to cfgdir */
GError *error = NULL;
if (!itdb_cp (itdb->filename, eitdb->offline_filename, &error))
Modified: gtkpod/trunk/src/misc.c
===================================================================
--- gtkpod/trunk/src/misc.c 2008-08-02 08:20:34 UTC (rev 2078)
+++ gtkpod/trunk/src/misc.c 2008-08-02 10:50:09 UTC (rev 2079)
@@ -1690,12 +1690,14 @@
GError *error = NULL;
gchar *path = g_build_filename (dir, "gtkpod.prefs", NULL);
temp_prefs = temp_prefs_load (path, &error);
+ g_free (path);
if (temp_prefs)
{
gchar *subkey;
subkey = get_itdb_prefs_key (index, "");
/* rename 'itdb_*' to 'itdb_<index>_*' */
temp_prefs_rename_subkey (temp_prefs, "itdb_", subkey);
+ g_free (subkey);
/* merge with real prefs */
temp_prefs_apply (temp_prefs);
/* destroy temp prefs */
Modified: gtkpod/trunk/src/prefs.c
===================================================================
--- gtkpod/trunk/src/prefs.c 2008-08-02 08:20:34 UTC (rev 2078)
+++ gtkpod/trunk/src/prefs.c 2008-08-02 10:50:09 UTC (rev 2079)
@@ -567,16 +567,17 @@
{
if ((g_mkdir(folder, 0777)) == -1)
{
- printf(_("Couldn't create ~/.gtkpod\n"));
+ printf(_("Couldn't create '%s'\n"), folder);
+ g_free (folder);
return NULL;
}
}
-
return folder;
}
/* get @key and @value from a string like "key=value" */
+/* you must g_free (*key) and (*value) after use */
static gboolean read_prefs_get_key_value (const gchar *buf,
gchar **key, gchar **value)
{
@@ -790,7 +791,7 @@
do
{
- gchar *line;
+ gchar *line = NULL;
status = g_io_channel_read_line (gio, &line, NULL, NULL, error);
if (status == G_IO_STATUS_NORMAL)
@@ -799,9 +800,11 @@
if (read_prefs_get_key_value (line, &key, &value))
{
temp_prefs_set_string (temp_prefs, key, value);
+ g_free (key);
+ g_free (value);
}
- g_free (line);
}
+ g_free (line);
} while (status == G_IO_STATUS_NORMAL);
g_io_channel_unref (gio);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gtkpod-cvs2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2