brasero r1398 - in trunk: . src



Author: philippr
Date: Sun Oct 19 13:55:19 2008
New Revision: 1398
URL: http://svn.gnome.org/viewvc/brasero?rev=1398&view=rev

Log:
	Fix a problem with infinite loading and potential crash when the same 
	uri was requested to be loaded at the same time

	* src/brasero-data-vfs.c (brasero_data_vfs_load_mime):


Modified:
   trunk/ChangeLog
   trunk/src/brasero-data-vfs.c

Modified: trunk/src/brasero-data-vfs.c
==============================================================================
--- trunk/src/brasero-data-vfs.c	(original)
+++ trunk/src/brasero-data-vfs.c	Sun Oct 19 13:55:19 2008
@@ -947,18 +947,19 @@
 	nodes = g_hash_table_lookup (priv->loading, uri);
 	if (nodes) {
 		gchar *registered;
+		GSList *iter;
 
 		registered = brasero_utils_register_string (uri);
 		g_free (uri);
 
-		for (; nodes; nodes = nodes->next) {
+		for (iter = nodes; iter; iter = iter->next) {
 			guint reference;
 			BraseroFileNode *ref_node;
 
-			reference = GPOINTER_TO_INT (nodes->data);
+			reference = GPOINTER_TO_INT (iter->data);
 			ref_node = brasero_data_project_reference_get (BRASERO_DATA_PROJECT (self), reference);
 			if (ref_node == node) {
-				/* 1sk for a higher priority */
+				/* Ask for a higher priority */
 				brasero_io_find_urgent (priv->io,
 							priv->load_uri,
 							brasero_data_vfs_increase_priority_cb,
@@ -971,7 +972,7 @@
 		/* It's loading, wait for the results */
 		reference = brasero_data_project_reference_new (BRASERO_DATA_PROJECT (self), node);
 		nodes = g_slist_prepend (nodes, GINT_TO_POINTER (reference));
-		g_hash_table_insert (priv->loading, (gchar *) uri, nodes);
+		g_hash_table_insert (priv->loading, registered, nodes);
 
 		/* Yet, ask for a higher priority */
 		brasero_io_find_urgent (priv->io,



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