diff options
author | John Sullivan <sullivan@src.gnome.org> | 2000-10-26 01:13:04 +0000 |
---|---|---|
committer | John Sullivan <sullivan@src.gnome.org> | 2000-10-26 01:13:04 +0000 |
commit | 90e487b98a56014d1b1175b89a1ddba178a232ee (patch) | |
tree | 550de0ade358f3fe1cf6cebf6ba8da4ca7586d0e /libnautilus-extensions/nautilus-directory-async.c | |
parent | 994901714ee0b0273998ef908fb8dcd1984746e8 (diff) | |
download | nautilus-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.c | 36 |
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); |