summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2003-04-23 10:35:40 +0000
committerAlexander Larsson <alexl@src.gnome.org>2003-04-23 10:35:40 +0000
commite807263d2d78b863ba5c4c6bc70da82790ccf9ff (patch)
treed6989757cfa7d05cfe1d4f5ffb87507b856e269f
parent7b8da86b8f6e923e169e69315f04baa7718556f3 (diff)
downloadnautilus-e807263d2d78b863ba5c4c6bc70da82790ccf9ff.tar.gz
Patch from Michael Meeks in bug #87414.
2003-04-23 Alexander Larsson <alexl@redhat.com> Patch from Michael Meeks in bug #87414. * src/nautilus-window.c (nautilus_window_finalize): NULL various pointers to help debugging. (nautilus_window_ui_thaw, nautilus_window_ui_freeze): hold a reference on the window over the various re-enterancy points guarded by the freeze / thaw.
-rw-r--r--ChangeLog10
-rw-r--r--src/nautilus-navigation-window.c6
-rw-r--r--src/nautilus-object-window.c6
-rw-r--r--src/nautilus-spatial-window.c6
-rw-r--r--src/nautilus-window.c6
5 files changed, 34 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 16f1b17cd..ae31cc5a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2003-04-23 Alexander Larsson <alexl@redhat.com>
+ Patch from Michael Meeks in bug #87414.
+
+ * src/nautilus-window.c (nautilus_window_finalize):
+ NULL various pointers to help debugging.
+ (nautilus_window_ui_thaw, nautilus_window_ui_freeze):
+ hold a reference on the window over the various
+ re-enterancy points guarded by the freeze / thaw.
+
+2003-04-23 Alexander Larsson <alexl@redhat.com>
+
* libnautilus-private/Makefile.am:
* libnautilus-private/apps_nautilus_preferences.schemas:
* libnautilus-private/apps_nautilus_preferences.schemas.in:
diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c
index 6fa709478..b8623d152 100644
--- a/src/nautilus-navigation-window.c
+++ b/src/nautilus-navigation-window.c
@@ -272,6 +272,8 @@ ui_remove_idle_handler (NautilusWindow *window)
void
nautilus_window_ui_freeze (NautilusWindow *window)
{
+ g_object_ref (window);
+
if (window->details->ui_change_depth == 0) {
ui_remove_idle_handler (window);
}
@@ -300,6 +302,8 @@ nautilus_window_ui_thaw (NautilusWindow *window)
|| window->details->ui_pending_initialize_menus_part_2)) {
ui_install_idle_handler (window);
}
+
+ g_object_unref (window);
}
/* Unconditionally synchronize the BonoboUI of WINDOW. */
@@ -961,11 +965,13 @@ nautilus_window_finalize (GObject *object)
if (window->details->shell_ui != NULL) {
bonobo_ui_component_unset_container (window->details->shell_ui, NULL);
bonobo_object_unref (window->details->shell_ui);
+ window->details->shell_ui = NULL;
}
if (window->details->status_ui != NULL) {
bonobo_ui_component_unset_container (window->details->status_ui, NULL);
bonobo_object_unref (window->details->status_ui);
+ window->details->status_ui = NULL;
}
nautilus_file_unref (window->details->viewed_file);
diff --git a/src/nautilus-object-window.c b/src/nautilus-object-window.c
index 6fa709478..b8623d152 100644
--- a/src/nautilus-object-window.c
+++ b/src/nautilus-object-window.c
@@ -272,6 +272,8 @@ ui_remove_idle_handler (NautilusWindow *window)
void
nautilus_window_ui_freeze (NautilusWindow *window)
{
+ g_object_ref (window);
+
if (window->details->ui_change_depth == 0) {
ui_remove_idle_handler (window);
}
@@ -300,6 +302,8 @@ nautilus_window_ui_thaw (NautilusWindow *window)
|| window->details->ui_pending_initialize_menus_part_2)) {
ui_install_idle_handler (window);
}
+
+ g_object_unref (window);
}
/* Unconditionally synchronize the BonoboUI of WINDOW. */
@@ -961,11 +965,13 @@ nautilus_window_finalize (GObject *object)
if (window->details->shell_ui != NULL) {
bonobo_ui_component_unset_container (window->details->shell_ui, NULL);
bonobo_object_unref (window->details->shell_ui);
+ window->details->shell_ui = NULL;
}
if (window->details->status_ui != NULL) {
bonobo_ui_component_unset_container (window->details->status_ui, NULL);
bonobo_object_unref (window->details->status_ui);
+ window->details->status_ui = NULL;
}
nautilus_file_unref (window->details->viewed_file);
diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c
index 6fa709478..b8623d152 100644
--- a/src/nautilus-spatial-window.c
+++ b/src/nautilus-spatial-window.c
@@ -272,6 +272,8 @@ ui_remove_idle_handler (NautilusWindow *window)
void
nautilus_window_ui_freeze (NautilusWindow *window)
{
+ g_object_ref (window);
+
if (window->details->ui_change_depth == 0) {
ui_remove_idle_handler (window);
}
@@ -300,6 +302,8 @@ nautilus_window_ui_thaw (NautilusWindow *window)
|| window->details->ui_pending_initialize_menus_part_2)) {
ui_install_idle_handler (window);
}
+
+ g_object_unref (window);
}
/* Unconditionally synchronize the BonoboUI of WINDOW. */
@@ -961,11 +965,13 @@ nautilus_window_finalize (GObject *object)
if (window->details->shell_ui != NULL) {
bonobo_ui_component_unset_container (window->details->shell_ui, NULL);
bonobo_object_unref (window->details->shell_ui);
+ window->details->shell_ui = NULL;
}
if (window->details->status_ui != NULL) {
bonobo_ui_component_unset_container (window->details->status_ui, NULL);
bonobo_object_unref (window->details->status_ui);
+ window->details->status_ui = NULL;
}
nautilus_file_unref (window->details->viewed_file);
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 6fa709478..b8623d152 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -272,6 +272,8 @@ ui_remove_idle_handler (NautilusWindow *window)
void
nautilus_window_ui_freeze (NautilusWindow *window)
{
+ g_object_ref (window);
+
if (window->details->ui_change_depth == 0) {
ui_remove_idle_handler (window);
}
@@ -300,6 +302,8 @@ nautilus_window_ui_thaw (NautilusWindow *window)
|| window->details->ui_pending_initialize_menus_part_2)) {
ui_install_idle_handler (window);
}
+
+ g_object_unref (window);
}
/* Unconditionally synchronize the BonoboUI of WINDOW. */
@@ -961,11 +965,13 @@ nautilus_window_finalize (GObject *object)
if (window->details->shell_ui != NULL) {
bonobo_ui_component_unset_container (window->details->shell_ui, NULL);
bonobo_object_unref (window->details->shell_ui);
+ window->details->shell_ui = NULL;
}
if (window->details->status_ui != NULL) {
bonobo_ui_component_unset_container (window->details->status_ui, NULL);
bonobo_object_unref (window->details->status_ui);
+ window->details->status_ui = NULL;
}
nautilus_file_unref (window->details->viewed_file);