summaryrefslogtreecommitdiff
path: root/libnautilus-extensions/nautilus-directory-async.c
diff options
context:
space:
mode:
authorJohn Sullivan <sullivan@src.gnome.org>2000-10-26 01:13:04 +0000
committerJohn Sullivan <sullivan@src.gnome.org>2000-10-26 01:13:04 +0000
commit90e487b98a56014d1b1175b89a1ddba178a232ee (patch)
tree550de0ade358f3fe1cf6cebf6ba8da4ca7586d0e /libnautilus-extensions/nautilus-directory-async.c
parent994901714ee0b0273998ef908fb8dcd1984746e8 (diff)
downloadnautilus-90e487b98a56014d1b1175b89a1ddba178a232ee.tar.gz
Fixed problems that were causing crash when Services button pressed.
* libnautilus-extensions/nautilus-directory-async.c: (load_directory_done), (dequeue_pending_idle_callback): Was missing several NULL checks.
Diffstat (limited to 'libnautilus-extensions/nautilus-directory-async.c')
-rw-r--r--libnautilus-extensions/nautilus-directory-async.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/libnautilus-extensions/nautilus-directory-async.c b/libnautilus-extensions/nautilus-directory-async.c
index 7ebb3b8e6..3f4af0724 100644
--- a/libnautilus-extensions/nautilus-directory-async.c
+++ b/libnautilus-extensions/nautilus-directory-async.c
@@ -1168,17 +1168,21 @@ get_filter_options_for_directory_count (void)
static void
load_directory_done (NautilusDirectory *directory)
{
- istr_set_destroy (directory->details->load_mime_list_hash);
- directory->details->load_mime_list_hash = NULL;
-
- directory->details->load_directory_file->details->loading_directory = FALSE;
-
- if (directory->details->load_directory_file->details->directory != directory) {
- nautilus_directory_async_state_changed (directory->details->load_directory_file->details->directory);
+ if (directory->details->load_mime_list_hash != NULL) {
+ istr_set_destroy (directory->details->load_mime_list_hash);
+ directory->details->load_mime_list_hash = NULL;
+ }
+
+ if (directory->details->load_directory_file != NULL) {
+ directory->details->load_directory_file->details->loading_directory = FALSE;
+
+ if (directory->details->load_directory_file->details->directory != directory) {
+ nautilus_directory_async_state_changed (directory->details->load_directory_file->details->directory);
+ }
+
+ nautilus_file_unref (directory->details->load_directory_file);
+ directory->details->load_directory_file = NULL;
}
-
- nautilus_file_unref (directory->details->load_directory_file);
- directory->details->load_directory_file = NULL;
gnome_vfs_directory_filter_destroy (directory->details->load_file_count_filter);
directory->details->load_file_count_filter = NULL;
@@ -1288,12 +1292,14 @@ dequeue_pending_idle_callback (gpointer callback_data)
/* Send the done_loading signal. */
nautilus_directory_emit_done_loading (directory);
- directory->details->load_directory_file->details->got_directory_count = TRUE;
- directory->details->load_directory_file->details->directory_count = directory->details->load_file_count;
+ if (directory->details->load_directory_file != NULL) {
+ directory->details->load_directory_file->details->got_directory_count = TRUE;
+ directory->details->load_directory_file->details->directory_count = directory->details->load_file_count;
- directory->details->load_directory_file->details->got_mime_list = TRUE;
- directory->details->load_directory_file->details->mime_list = istr_set_get_as_list
- (directory->details->load_mime_list_hash);
+ directory->details->load_directory_file->details->got_mime_list = TRUE;
+ directory->details->load_directory_file->details->mime_list = istr_set_get_as_list
+ (directory->details->load_mime_list_hash);
+ }
load_directory_done (directory);