diff options
author | Alexander Larsson <alexl@redhat.com> | 2003-04-23 10:35:40 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2003-04-23 10:35:40 +0000 |
commit | e807263d2d78b863ba5c4c6bc70da82790ccf9ff (patch) | |
tree | d6989757cfa7d05cfe1d4f5ffb87507b856e269f | |
parent | 7b8da86b8f6e923e169e69315f04baa7718556f3 (diff) | |
download | nautilus-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-- | ChangeLog | 10 | ||||
-rw-r--r-- | src/nautilus-navigation-window.c | 6 | ||||
-rw-r--r-- | src/nautilus-object-window.c | 6 | ||||
-rw-r--r-- | src/nautilus-spatial-window.c | 6 | ||||
-rw-r--r-- | src/nautilus-window.c | 6 |
5 files changed, 34 insertions, 0 deletions
@@ -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); |