brasero r1404 - in trunk: . src/plugins/local-track



Author: philippr
Date: Tue Oct 21 16:33:12 2008
New Revision: 1404
URL: http://svn.gnome.org/viewvc/brasero?rev=1404&view=rev

Log:
	Fix memleaks in local-track plugin

	* src/brasero-io.c (brasero_io_check_symlink_target),
	(brasero_io_get_file_info_thread_real),
	(brasero_io_get_file_info_thread),
	(brasero_io_parse_playlist_thread),
	(brasero_io_load_directory_thread):
	* src/plugins/local-track/burn-local-image.c
	(brasero_local_track_thread_finished):


Modified:
   trunk/ChangeLog
   trunk/src/plugins/local-track/burn-local-image.c

Modified: trunk/src/plugins/local-track/burn-local-image.c
==============================================================================
--- trunk/src/plugins/local-track/burn-local-image.c	(original)
+++ trunk/src/plugins/local-track/burn-local-image.c	Tue Oct 21 16:33:12 2008
@@ -560,20 +560,27 @@
 		grafts = brasero_track_get_data_grafts_source (track);
 		for (; grafts; grafts = grafts->next) {
 			BraseroGraftPt *graft;
+			gchar *uri;
 
 			graft = grafts->data;
-			graft->uri = brasero_local_track_translate_uri (self, graft->uri);
+			uri = brasero_local_track_translate_uri (self, graft->uri);
+			g_free (graft->uri);
+			graft->uri = uri;
 		}
 
 		BRASERO_JOB_LOG (self, "Translating unreadable");
 
-		/* translate the globally excluded */
+		/* Translate the globally excluded.
+		 * NOTE: if we can't find a parent for an excluded URI that
+		 * means it shouldn't be included. */
 		unreadable = brasero_track_get_data_excluded_source (track, FALSE);
 		for (; unreadable; unreadable = next) {
 			gchar *new_uri;
 
 			next = unreadable->next;
 			new_uri = brasero_local_track_translate_uri (self, unreadable->data);
+			g_free (unreadable->data);
+
 			if (new_uri)
 				unreadable->data = new_uri;
 			else
@@ -584,23 +591,36 @@
 
 	case BRASERO_TRACK_TYPE_AUDIO: {
 		gchar *uri;
+		gchar *newuri;
 
 		uri = brasero_track_get_audio_source (track, TRUE);
-		uri = brasero_local_track_translate_uri (self, uri);
-		brasero_track_set_audio_source (track, uri, input.subtype.audio_format); 
+		newuri = brasero_local_track_translate_uri (self, uri);
+		brasero_track_set_audio_source (track,
+						newuri,
+						input.subtype.audio_format);
+		g_free (uri);
 	}
 	break;
 
 	case BRASERO_TRACK_TYPE_IMAGE: {
 		gchar *uri;
+		gchar *newuri;
 
 		uri = brasero_track_get_image_source (track, TRUE);
-		uri = brasero_local_track_translate_uri (self, uri);
-		brasero_track_set_image_source (track, uri, NULL, input.subtype.img_format);
+		newuri = brasero_local_track_translate_uri (self, uri);
+		brasero_track_set_image_source (track,
+						newuri,
+						NULL,
+						input.subtype.img_format);
+		g_free (uri);
 
 		uri = brasero_track_get_toc_source (track, TRUE);
-		uri = brasero_local_track_translate_uri (self, uri);
-		brasero_track_set_image_source (track, NULL, uri, input.subtype.img_format);
+		newuri = brasero_local_track_translate_uri (self, uri);
+		brasero_track_set_image_source (track,
+						NULL,
+						newuri,
+						input.subtype.img_format);
+		g_free (uri);
 	}
 	break;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]