[Xfce4-commits] r23155 - in xarchiver/branches/xarchiver-psybsd: libxarchiver src

Stephan Arts stephan at xfce.org
Thu Sep 14 12:25:32 UTC 2006


Author: stephan
Date: 2006-09-14 12:25:32 +0000 (Thu, 14 Sep 2006)
New Revision: 23155

Modified:
   xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
   xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c
   xarchiver/branches/xarchiver-psybsd/src/main.c
   xarchiver/branches/xarchiver-psybsd/src/main_window.c
Log:
fixed mem-leak and timing issue



Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c	2006-09-14 11:28:44 UTC (rev 23154)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support-gnu-tar.c	2006-09-14 12:25:32 UTC (rev 23155)
@@ -388,6 +388,7 @@
 			if (line == NULL)
  				break;
 			entry = lxa_archive_add_file(archive, line);
+			g_free(line);
 			/* TODO: Add data */
 		}
 	}
@@ -398,6 +399,7 @@
 #endif
 		g_io_channel_shutdown ( ioc,TRUE,NULL );
 		g_io_channel_unref (ioc);
+		lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_IDLE);
 		return FALSE; 
 	}
 	return TRUE;

Modified: xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c	2006-09-14 11:28:44 UTC (rev 23154)
+++ xarchiver/branches/xarchiver-psybsd/libxarchiver/internals.c	2006-09-14 12:25:32 UTC (rev 23155)
@@ -33,7 +33,8 @@
 {
 	LXAArchive *archive = data;
 	archive->child_pid = 0;
-	lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_IDLE);
+	if(archive->status != LXA_ARCHIVESTATUS_REFRESH)
+		lxa_archive_set_status(archive, LXA_ARCHIVESTATUS_IDLE);
 	if(archive->files)
 	{
 		g_free(archive->files);

Modified: xarchiver/branches/xarchiver-psybsd/src/main.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main.c	2006-09-14 11:28:44 UTC (rev 23154)
+++ xarchiver/branches/xarchiver-psybsd/src/main.c	2006-09-14 12:25:32 UTC (rev 23155)
@@ -102,9 +102,6 @@
  	textdomain (GETTEXT_PACKAGE);
 	#endif
 
-	g_thread_init(NULL);
-
-
 	if(!gtk_init_with_args(&argc, &argv, _("[archive name]"), entries, PACKAGE, &cli_error))
 	{
 		if ( cli_error != NULL )

Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-09-14 11:28:44 UTC (rev 23154)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c	2006-09-14 12:25:32 UTC (rev 23155)
@@ -321,6 +321,8 @@
 			gtk_widget_set_sensitive(GTK_WIDGET(parent_window->toolbar.tool_item_remove), TRUE);
 			gtk_widget_set_sensitive(GTK_WIDGET(parent_window->toolbar.tool_item_extract), TRUE);
 			g_signal_connect(G_OBJECT(lp_xa_archive), "lxa_status_changed", G_CALLBACK(xa_main_window_archive_status_changed), parent_window);
+			g_slist_free(parent_window->working_node);
+			parent_window->working_node = NULL;
 			lpSupport = lxa_get_support_for_mime(lp_xa_archive->mime);
 			lxa_archive_support_refresh(lpSupport, lp_xa_archive);
 		}
@@ -344,6 +346,13 @@
 	XAMainWindow *main_window = XA_MAIN_WINDOW(userdata);
 	if(archive->old_status == LXA_ARCHIVESTATUS_REFRESH)
 	{
+		GList *columns = gtk_tree_view_get_columns(GTK_TREE_VIEW(main_window->treeview));
+		while(columns)
+		{
+			gtk_tree_view_remove_column(GTK_TREE_VIEW(main_window->treeview), columns->data);
+			columns = columns->next;
+		}
+		g_list_free(columns);
 		liststore = gtk_list_store_newv(archive->column_number, archive->column_types); 
 		for(x = 0; x < archive->column_number; x++)
 		{
@@ -427,6 +436,6 @@
 /*	else*/
 		/* 'view' */
 
-g_free(value);
-
+	g_value_reset(value);
+	g_free(value);
 }



More information about the Xfce4-commits mailing list