Re: [Nautilus-list] Memleak patch
- From: Anders Carlsson <andersca gnu org>
- To: Darin Adler <darin bentspoon com>
- Cc: nautilus-list lists eazel com
- Subject: Re: [Nautilus-list] Memleak patch
- Date: 23 Aug 2001 08:08:56 +0200
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]