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);
 }

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to