Re: [Nautilus-list] Memleak patch



On 22 Aug 2001 16:31:10 -0700, Darin Adler wrote:
> On Wednesday, August 22, 2001, at 03:13  PM, Anders Carlsson wrote:
> 
> > here's a patch that fixes some of the memory leaks I came across while
> > using memprof to run nautilus.
> 
> This patch is great!
> 

A new patch which hopefully is even greater is attached :)

> I love using leak checkers. I am so glad that memprof worked well for you 
> with Nautilus.
> 
> And I'm so happy that someone finally fixed the 1-pixel splitter bug. 
> There's a bug in bugzilla.eazel.com that you can close, but I don't know 
> the number off hand.
> 
> > Most stuff is straightforward, the only
> > semi-complex thing I do is put the volume_mount_uri inside a struct in
> > nautilus-trash-directory.c so that it can be freed.
> 
> You actually don't need to do this. The GnomeVFSURI can just be unref'd 
> just the call to gnome_vfs_async_find_directory -- it doesn't need to stay 
> around until the call completes. The async. back end makes a copy of the 
> URIs in the URI list. See line 598 of gnome-vfs/libgnomevfs-
> pthread/gnome-vfs-async-ops.c.
> 

This has been fixed, thanks for spotting it.

> > Index: components/sample/Makefile.am
> > ===================================================================
> > RCS file: /cvs/gnome/nautilus/components/sample/Makefile.am,v
> > retrieving revision 1.28
> > diff -u -r1.28 Makefile.am
> > --- components/sample/Makefile.am	2001/07/21 17:06:44	1.28
> > +++ components/sample/Makefile.am	2001/08/22 22:08:05
> > @@ -12,6 +12,7 @@
> >  	-DICON_DIR=\"$(datadir)/pixmaps/nautilus\" \
> >  	-I$(top_srcdir)				\
> >  	-I$(top_builddir)			\
> > +	$(EEL_CFLAGS)				\
> >  	$(GNOMEUI_CFLAGS)                       \
> >  	$(BONOBO_CFLAGS)			\
> >  	$(OAF_CFLAGS)
> > @@ -26,6 +27,7 @@
> >
> >  nautilus_sample_content_view_LDADD =		\
> >  	$(top_builddir)/libnautilus/libnautilus.la	\
> > +	$(EEL_LIBS)				\
> >  	$(BONOBO_LIBS)				\
> >  	$(BONOBOX_LIBS)				\
> >  	$(GCONF_LIBS)				\
> 
> I am slightly worried about this. Does this mean that developers working 
> on nautilus components will have to have eel-devel installed?

Actually, it seems like that is the case already since gnome-config
--cflags and gnome-config --libs both specify the eel include directory
and the eel library. However, I've removed the references here since we
no longer need eel anyway.

> 
> > Index: libnautilus/nautilus-idle-queue.c
> > ===================================================================
> > RCS file: /cvs/gnome/nautilus/libnautilus/nautilus-idle-queue.c,v
> > retrieving revision 1.3
> > diff -u -r1.3 nautilus-idle-queue.c
> > --- libnautilus/nautilus-idle-queue.c	2001/03/08 19:53:29	1.3
> > +++ libnautilus/nautilus-idle-queue.c	2001/08/22 22:08:05
> > @@ -26,6 +26,7 @@
> >  #include <config.h>
> >  #include "nautilus-idle-queue.h"
> >
> > +#include <eel/eel-glib-extensions.h>
> >  #include <gtk/gtkmain.h>
> >
> >  struct NautilusIdleQueue {
> > @@ -70,7 +71,7 @@
> >  			}
> >  		}
> >
> > -		g_list_free (functions);
> > +		eel_g_list_free_deep (functions);
> >  	}
> >  	queue->in_idle = FALSE;
> >
> > @@ -130,7 +131,7 @@
> >  		}
> >  	}
> >  	
> > -	g_list_free (queue->functions);
> > +	eel_g_list_free_deep (queue->functions);
> >
> >  	if (queue->idle_id != 0) {
> >  		gtk_idle_remove (queue->idle_id);
> 
> In both cases, there's a loop just before the g_list_free statement that 
> could just have a g_free added to it, then you wouldn't need to include 
> eel, I think. So maybe we should go that way.

Fixed.

> 
> > -CONTROL_CENTER_REQUIRED=1.3
> 
> If you remove this from configure.in, you should also remove it from 
> nautilus.spec.in to be polite to those who use that.

Fixed.

> 
> > Index: libnautilus-private/nautilus-file-changes-queue.c
> > ===================================================================
> > RCS file: /cvs/gnome/nautilus/libnautilus-
> > private/nautilus-file-changes-queue.c,v
> > retrieving revision 1.19
> > diff -u -r1.19 nautilus-file-changes-queue.c
> > --- libnautilus-private/nautilus-file-changes-queue.c	2001/05/11 01:30:30	
> > 1.19
> > +++ libnautilus-private/nautilus-file-changes-queue.c	2001/08/22 22:08:06
> > @@ -547,5 +547,6 @@
> >  		}
> >  		change->from_uri = NULL;
> >  		change->to_uri = NULL;
> > +		g_free (change);
> >  	}	
> >  }
> 
> I would not bother nulling out fields in a struct that we're about to free.

Fixed.

> 
> > Index: libnautilus-private/nautilus-font-factory.c
> > ===================================================================
> > RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-font-factory.c,
> > v
> > retrieving revision 1.16
> > diff -u -r1.16 nautilus-font-factory.c
> > --- libnautilus-private/nautilus-font-factory.c	2001/05/04 10:17:53	1.16
> > +++ libnautilus-private/nautilus-font-factory.c	2001/08/22 22:08:06
> > @@ -25,6 +25,7 @@
> >  #include <config.h>
> >  #include "nautilus-font-factory.h"
> >
> > +#include <gdk/gdkprivate.h>
> >  #include "nautilus-global-preferences.h"
> >  #include <eel/eel-gtk-macros.h>
> >  #include <eel/eel-string.h>
> 
> What is this change about exactly? It's not mentioned in the change log 
> entry.

This was from debugging a leak when calling gdk_fontset_load which sadly
enough seems to be in X.

> 
> > Index: src/nautilus-sidebar.c
> > ===================================================================
> > RCS file: /cvs/gnome/nautilus/src/nautilus-sidebar.c,v
> > retrieving revision 1.185
> > diff -u -r1.185 nautilus-sidebar.c
> > --- src/nautilus-sidebar.c	2001/07/20 17:36:34	1.185
> > +++ src/nautilus-sidebar.c	2001/08/22 22:08:09
> > @@ -315,6 +315,11 @@
> >  		nautilus_file_unref (sidebar->details->file);
> >  	}
> >
> > +	/* If the title tab hasn't got a parent we have to free it 
> > explicitly */
> > +	if (GTK_WIDGET (sidebar->details->title_tab)->parent == NULL) {
> > +		gtk_object_unref (GTK_OBJECT (sidebar->details->title_tab));
> > +	}
> > +	
> >  	g_free (sidebar->details->uri);
> >  	g_free (sidebar->details->default_background_color);
> >  	g_free (sidebar->details->default_background_image);
> 
> I think you can just do an unconditional gtk_object_sink here instead, no?

Yes, fixed.

> 
> > Index: src/file-manager/fm-properties-window.c
> 
> The changes in this file look like a separate feature to me.

Yes, it's a first implementation of pluggable property pages. I'll bug
you more about this later :)

> 
>      -- Darin

//andersca
andersca gnu org
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/nautilus/ChangeLog,v
retrieving revision 1.4731
diff -u -r1.4731 ChangeLog
--- ChangeLog	2001/08/22 17:33:21	1.4731
+++ ChangeLog	2001/08/23 06:06:43
@@ -1,3 +1,51 @@
+2001-08-23  Anders Carlsson  <andersca gnu org>
+
+	* nautilus.spec.in: Remove CONTROL_CENTER_REQUIRED since nautilus
+	doesn't require control-center anymore.
+
+ 	* configure.in: Remove CONTROL_CENTER_REQUIRED since nautilus
+ 	doesn't require control-center anymore.
+ 
+ 	* src/nautilus-window.c (nautilus_window_constructed): 
+ 	Set shrink to TRUE when adding the sidebar since it'll look
+ 	better when the splitter is collapsed.
+ 	(nautilus_window_destroy): Free the window title.
+ 
+ 	* src/nautilus-window-manage-views.c (begin_location_change): 
+ 	Unref the directory when we're done using it.
+ 
+ 	* src/nautilus-sidebar.c (nautilus_sidebar_destroy): Sink
+ 	the title tab so it'll destroyed even if it hasn't got a parent.
+ 
+ 	* libnautilus-private/nautilus-vfs-file.c (vfs_destroy): 
+ 	Free details struct.
+ 
+ 	* libnautilus-private/nautilus-vfs-directory.c (vfs_destroy): 
+ 	Free details struct.
+ 
+ 	* libnautilus-private/nautilus-mime-actions.c 
+ 	(nautilus_mime_get_short_list_applications_for_file): 
+ 	Free uri_scheme.
+ 	(make_oaf_query_with_uri_scheme_only): Free explicit_iid_query.
+ 
+ 	* libnautilus-private/nautilus-metafile.c (destroy): 
+ 	Unref the private vfs uri, and free the directory uri.
+ 
+ 	* libnautilus-private/nautilus-file.c (nautilus_file_get_internal): 
+ 	Free the string returned by nautilus_directory_get_name_for_self_as_new_file.
+ 
+ 	* libnautilus-private/nautilus-file-changes-queue.c 
+ 	(nautilus_file_changes_consume_changes): 
+ 	Free the change struct.
+ 
+ 	* libnautilus-private/nautilus-directory-async.c 
+ 	(nautilus_directory_invalidate_count_and_mime_list): 
+ 	Unref the file after using it.
+ 
+ 	* libnautilus/nautilus-idle-queue.c (execute_queued_functions): 
+ 	Free each list node.
+ 	(nautilus_idle_queue_destroy): Likewise.
+
 2001-08-22  Ramiro Estrugo  <ramiro fateware com>
 
 	reviewed by: <delete if not using a buddy>
Index: configure.in
===================================================================
RCS file: /cvs/gnome/nautilus/configure.in,v
retrieving revision 1.360
diff -u -r1.360 configure.in
--- configure.in	2001/08/15 06:35:01	1.360
+++ configure.in	2001/08/23 06:06:44
@@ -8,7 +8,6 @@
 dnl ==========================================================================
 
 BONOBO_REQUIRED=0.37
-CONTROL_CENTER_REQUIRED=1.3
 EEL_REQUIRED=1.0
 ESOUND_REQUIRED=0.2.22
 FREETYPE_LIBRARY_REQUIRED=6.1.0
@@ -420,9 +419,6 @@
 LIBS=$GNOMEUI_LIBS
 AC_CHECK_FUNCS(gnome_canvas_set_dither)
 LIBS="$_libs"
-
-dnl control center
-NAUTILUS_VERSION_INSIST(control-center, $GNOME_CONFIG --modversion capplet | awk -F- '{print $2}', >=, CONTROL_CENTER_REQUIRED)
 
 dnl Bonobo
 NAUTILUS_VERSION_INSIST(bonobo, $GNOME_CONFIG --modversion bonobo | awk -F- '{print $2}', >=, BONOBO_REQUIRED)
Index: nautilus.spec.in
===================================================================
RCS file: /cvs/gnome/nautilus/nautilus.spec.in,v
retrieving revision 1.162
diff -u -r1.162 nautilus.spec.in
--- nautilus.spec.in	2001/06/18 19:36:28	1.162
+++ nautilus.spec.in	2001/08/23 06:06:44
@@ -32,7 +32,6 @@
 Requires:	esound >= @ESOUND_REQUIRED@
 Requires:	scrollkeeper >= @SCROLLKEEPER_REQUIRED@
 Requires:	libpng
-Requires:	control-center >= @CONTROL_CENTER_REQUIRED@
 Requires:	librsvg >= @LIBRSVG_REQUIRED@
 Requires:	eel >= @EEL_REQUIRED@
 
@@ -53,7 +52,6 @@
 BuildRequires:	esound-devel >= @ESOUND_REQUIRED@
 BuildRequires:	scrollkeeper >= @SCROLLKEEPER_REQUIRED@
 BuildRequires:	libpng-devel
-BuildRequires:	control-center-devel >= @CONTROL_CENTER_REQUIRED@
 BuildRequires:	librsvg-devel >= @LIBRSVG_REQUIRED@
 BuildRequires:	eel-devel >= @EEL_REQUIRED@
 BuildRequires:	mozilla-devel >= 0.8
Index: libnautilus/nautilus-idle-queue.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus/nautilus-idle-queue.c,v
retrieving revision 1.3
diff -u -r1.3 nautilus-idle-queue.c
--- libnautilus/nautilus-idle-queue.c	2001/03/08 19:53:29	1.3
+++ libnautilus/nautilus-idle-queue.c	2001/08/23 06:06:44
@@ -26,6 +26,7 @@
 #include <config.h>
 #include "nautilus-idle-queue.h"
 
+#include <eel/eel-glib-extensions.h>
 #include <gtk/gtkmain.h>
 
 struct NautilusIdleQueue {
@@ -68,6 +69,8 @@
 			if (function->free_callback_data != NULL) {
 				(* function->free_callback_data) (function->callback_data);
 			}
+
+			g_free (function);
 		}
 
 		g_list_free (functions);
@@ -128,6 +131,8 @@
 		if (function->free_callback_data != NULL) {
 			(* function->free_callback_data) (function->callback_data);
 		}
+
+		g_free (function);
 	}
 	
 	g_list_free (queue->functions);
Index: libnautilus-private/nautilus-directory-async.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-directory-async.c,v
retrieving revision 1.160
diff -u -r1.160 nautilus-directory-async.c
--- libnautilus-private/nautilus-directory-async.c	2001/07/23 10:12:53	1.160
+++ libnautilus-private/nautilus-directory-async.c	2001/08/23 06:06:44
@@ -1915,6 +1915,8 @@
 	if (file != NULL) {
 		nautilus_file_invalidate_count_and_mime_list (file);
 	}
+	
+	nautilus_file_unref (file);
 }
 
 static void
Index: libnautilus-private/nautilus-file-changes-queue.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-file-changes-queue.c,v
retrieving revision 1.19
diff -u -r1.19 nautilus-file-changes-queue.c
--- libnautilus-private/nautilus-file-changes-queue.c	2001/05/11 01:30:30	1.19
+++ libnautilus-private/nautilus-file-changes-queue.c	2001/08/23 06:06:44
@@ -545,7 +545,7 @@
 			g_assert_not_reached ();
 			break;
 		}
-		change->from_uri = NULL;
-		change->to_uri = NULL;
+
+		g_free (change);
 	}	
 }
Index: libnautilus-private/nautilus-file.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-file.c,v
retrieving revision 1.249
diff -u -r1.249 nautilus-file.c
--- libnautilus-private/nautilus-file.c	2001/07/16 21:15:06	1.249
+++ libnautilus-private/nautilus-file.c	2001/08/23 06:06:44
@@ -299,7 +299,7 @@
 static NautilusFile *
 nautilus_file_get_internal (const char *uri, gboolean create)
 {
-	char *canonical_uri, *directory_uri, *relative_uri;
+	char *canonical_uri, *directory_uri, *relative_uri, *file_name;
 	gboolean self_owned;
 	GnomeVFSURI *vfs_uri, *directory_vfs_uri;
 	NautilusDirectory *directory;
@@ -358,8 +358,9 @@
 	if (vfs_uri == NULL) {
 		g_assert (self_owned);
 		if (directory != NULL) {
-			relative_uri = gnome_vfs_escape_string
-				(nautilus_directory_get_name_for_self_as_new_file (directory));
+			file_name = nautilus_directory_get_name_for_self_as_new_file (directory);
+			relative_uri = gnome_vfs_escape_string (file_name);
+			g_free (file_name);
 		}
 	}
 
Index: libnautilus-private/nautilus-icon-factory.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-icon-factory.c,v
retrieving revision 1.224
diff -u -r1.224 nautilus-icon-factory.c
--- libnautilus-private/nautilus-icon-factory.c	2001/07/24 23:38:40	1.224
+++ libnautilus-private/nautilus-icon-factory.c	2001/08/23 06:06:44
@@ -1015,6 +1015,7 @@
 		
 			/* Return the path if the file exists. */
 			if (path != NULL) {
+				g_free (partial_path);
 				break;
 			}
 			
@@ -1512,6 +1513,7 @@
 			g_free (file_path);
 		}
 		g_free (directory);
+		g_free (directory_uri);
 		g_free (desktop_directory);
 	}
 	
Index: libnautilus-private/nautilus-metafile.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-metafile.c,v
retrieving revision 1.15
diff -u -r1.15 nautilus-metafile.c
--- libnautilus-private/nautilus-metafile.c	2001/07/07 09:19:14	1.15
+++ libnautilus-private/nautilus-metafile.c	2001/08/23 06:06:44
@@ -240,13 +240,18 @@
 	if (metafile->details->private_vfs_uri != NULL) {
 		gnome_vfs_uri_unref (metafile->details->private_vfs_uri);
 	}
-	
+	if (metafile->details->directory_vfs_uri != NULL) {
+		gnome_vfs_uri_unref (metafile->details->directory_vfs_uri);
+	}
+
 	g_hash_table_remove (metafiles, metafile->details->directory_uri);
 	
 	metafile_free_metadata (metafile);
 	g_hash_table_destroy (metafile->details->node_hash);
 
 	g_assert (metafile->details->write_idle_id == 0);
+
+	g_free (metafile->details->directory_uri);
 
 	g_free (metafile->details);
 
Index: libnautilus-private/nautilus-mime-actions.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-mime-actions.c,v
retrieving revision 1.88
diff -u -r1.88 nautilus-mime-actions.c
--- libnautilus-private/nautilus-mime-actions.c	2001/06/01 16:27:19	1.88
+++ libnautilus-private/nautilus-mime-actions.c	2001/08/23 06:06:44
@@ -486,7 +486,8 @@
 	result = eel_g_list_partition (result, application_supports_uri_scheme,
 					    uri_scheme, &removed);
 	gnome_vfs_mime_application_list_free (removed);
-
+	g_free (uri_scheme);
+	
 	metadata_application_add_ids = nautilus_file_get_metadata_list 
 		(file,
 		 NAUTILUS_METADATA_KEY_SHORT_LIST_APPLICATION_ADD,
@@ -1444,6 +1445,8 @@
                   , explicit_iid_query,
 		  extra_requirements != NULL ? extra_requirements : "true");
 
+	g_free (explicit_iid_query);
+	
         return result;
 }
 
Index: libnautilus-private/nautilus-trash-directory.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-trash-directory.c,v
retrieving revision 1.25
diff -u -r1.25 nautilus-trash-directory.c
--- libnautilus-private/nautilus-trash-directory.c	2001/08/15 21:03:59	1.25
+++ libnautilus-private/nautilus-trash-directory.c	2001/08/23 06:06:44
@@ -192,6 +192,8 @@
 		(&trash_volume->handle, &vfs_uri_as_list, 
 		 GNOME_VFS_DIRECTORY_KIND_TRASH, FALSE, TRUE, 0777,
 		 find_directory_callback, trash_volume);
+
+	gnome_vfs_uri_unref (volume_mount_uri);
 }
 
 static void
Index: libnautilus-private/nautilus-vfs-directory.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-vfs-directory.c,v
retrieving revision 1.15
diff -u -r1.15 nautilus-vfs-directory.c
--- libnautilus-private/nautilus-vfs-directory.c	2001/07/05 23:16:53	1.15
+++ libnautilus-private/nautilus-vfs-directory.c	2001/08/23 06:06:44
@@ -55,6 +55,12 @@
 static void
 vfs_destroy (GtkObject *object)
 {
+	NautilusVFSDirectory *directory;
+
+	directory = NAUTILUS_VFS_DIRECTORY (object);
+
+	g_free (directory->details);
+
 	EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object));
 }
 
Index: libnautilus-private/nautilus-vfs-file.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-vfs-file.c,v
retrieving revision 1.10
diff -u -r1.10 nautilus-vfs-file.c
--- libnautilus-private/nautilus-vfs-file.c	2001/07/05 23:16:53	1.10
+++ libnautilus-private/nautilus-vfs-file.c	2001/08/23 06:06:44
@@ -245,6 +245,12 @@
 static void
 vfs_destroy (GtkObject *object)
 {
+	NautilusVFSFile *file;
+
+	file = NAUTILUS_VFS_FILE (object);
+
+	g_free (file->details);
+	
 	EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object));
 }
 
Index: libnautilus-private/nautilus-view-identifier.c
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-view-identifier.c,v
retrieving revision 1.15
diff -u -r1.15 nautilus-view-identifier.c
--- libnautilus-private/nautilus-view-identifier.c	2001/04/04 00:06:03	1.15
+++ libnautilus-private/nautilus-view-identifier.c	2001/08/23 06:06:44
@@ -184,6 +184,13 @@
 }
 
 NautilusViewIdentifier *
+nautilus_view_identifier_new_from_property_page (OAF_ServerInfo *server)
+{
+	return nautilus_view_identifier_new_from_oaf_server_info
+		(server, "nautilus:property_page_name");
+}
+
+NautilusViewIdentifier *
 nautilus_view_identifier_new_from_sidebar_panel (OAF_ServerInfo *server)
 {
 	return nautilus_view_identifier_new_from_oaf_server_info
Index: libnautilus-private/nautilus-view-identifier.h
===================================================================
RCS file: /cvs/gnome/nautilus/libnautilus-private/nautilus-view-identifier.h,v
retrieving revision 1.9
diff -u -r1.9 nautilus-view-identifier.h
--- libnautilus-private/nautilus-view-identifier.h	2001/02/25 10:02:13	1.9
+++ libnautilus-private/nautilus-view-identifier.h	2001/08/23 06:06:44
@@ -38,6 +38,7 @@
 									   char                         *name_attribute);
 NautilusViewIdentifier *nautilus_view_identifier_new_from_content_view    (OAF_ServerInfo               *server);
 NautilusViewIdentifier *nautilus_view_identifier_new_from_sidebar_panel   (OAF_ServerInfo               *server);
+NautilusViewIdentifier *nautilus_view_identifier_new_from_property_page   (OAF_ServerInfo               *server);
 NautilusViewIdentifier *nautilus_view_identifier_copy                     (const NautilusViewIdentifier *identifier);
 void                    nautilus_view_identifier_free                     (NautilusViewIdentifier       *identifier);
 int                     nautilus_view_identifier_compare                  (const NautilusViewIdentifier *a,
Index: src/nautilus-sidebar-title.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-sidebar-title.c,v
retrieving revision 1.107
diff -u -r1.107 nautilus-sidebar-title.c
--- src/nautilus-sidebar-title.c	2001/07/15 08:54:11	1.107
+++ src/nautilus-sidebar-title.c	2001/08/23 06:06:44
@@ -573,10 +573,10 @@
 	if (largest_fitting_font == NULL) {
 		largest_fitting_font = eel_gdk_font_get_fixed ();
 	}
-	
+
 	eel_gtk_widget_set_font (sidebar_title->details->title_label,
 				      largest_fitting_font);
-	
+
 	gdk_font_unref (largest_fitting_font);
 	gdk_font_unref (bold_template_font);
 	gdk_font_unref (template_font);
Index: src/nautilus-sidebar.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-sidebar.c,v
retrieving revision 1.185
diff -u -r1.185 nautilus-sidebar.c
--- src/nautilus-sidebar.c	2001/07/20 17:36:34	1.185
+++ src/nautilus-sidebar.c	2001/08/23 06:06:44
@@ -315,6 +315,8 @@
 		nautilus_file_unref (sidebar->details->file);
 	}
 
+	gtk_object_sink (GTK_OBJECT (sidebar->details->title_tab));
+	
 	g_free (sidebar->details->uri);
 	g_free (sidebar->details->default_background_color);
 	g_free (sidebar->details->default_background_image);
Index: src/nautilus-window-manage-views.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window-manage-views.c,v
retrieving revision 1.267
diff -u -r1.267 nautilus-window-manage-views.c
--- src/nautilus-window-manage-views.c	2001/06/26 23:51:52	1.267
+++ src/nautilus-window-manage-views.c	2001/08/23 06:06:44
@@ -1398,6 +1398,7 @@
 	} else {
 		force_reload = !nautilus_directory_is_local (directory);
 	}
+
 	if (force_reload) {
 		nautilus_directory_force_reload (directory);
 		file = nautilus_directory_get_corresponding_file (directory);
@@ -1405,6 +1406,8 @@
 		nautilus_file_unref (file);
 	}
 
+        nautilus_directory_unref (directory);
+        
         window->details->determine_view_handle = nautilus_determine_initial_view
                 (location,
                  determined_initial_view_callback,
Index: src/nautilus-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window.c,v
retrieving revision 1.336
diff -u -r1.336 nautilus-window.c
--- src/nautilus-window.c	2001/08/22 17:24:16	1.336
+++ src/nautilus-window.c	2001/08/23 06:06:45
@@ -760,7 +760,7 @@
 				    go_to_callback, window);
 		e_paned_pack1 (E_PANED (window->content_hbox),
 			       GTK_WIDGET (window->sidebar),
-			       FALSE, FALSE);
+			       FALSE, TRUE);
 #if 0
 		bonobo_ui_engine_add_sync (bonobo_window_get_ui_engine (BONOBO_WINDOW (window)),
 					   sidebar_sync);
@@ -992,6 +992,8 @@
 		gtk_idle_remove (window->details->location_change_at_idle_id);
 	}
 
+	g_free (window->details->title);
+	
 	g_free (window->details);
 
 	EEL_CALL_PARENT (GTK_OBJECT_CLASS, destroy, (object));


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