diff options
author | Darin Adler <darin@src.gnome.org> | 2000-09-20 00:54:25 +0000 |
---|---|---|
committer | Darin Adler <darin@src.gnome.org> | 2000-09-20 00:54:25 +0000 |
commit | 25c1f5f791edb75640b2e2ad2ea6c1f3e27c352c (patch) | |
tree | 6ee9e7b62a140d909da4ef2d8d5f5c0a45195d78 | |
parent | 1035b5ea668b2f85e6290e78e27da41948d57fb0 (diff) | |
download | nautilus-25c1f5f791edb75640b2e2ad2ea6c1f3e27c352c.tar.gz |
Fixed bug 3157 (Going to a bogus URI crashes nautilus).
* libnautilus-extensions/nautilus-directory-async.c:
(nautilus_directory_async_state_changed): Add a ref/unref to keep
the directory around even if call_when_ready results in the last
ref to the directory going away.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | libnautilus-extensions/nautilus-directory-async.c | 4 | ||||
-rw-r--r-- | libnautilus-private/nautilus-directory-async.c | 4 |
3 files changed, 15 insertions, 2 deletions
@@ -1,5 +1,14 @@ 2000-09-19 Darin Adler <darin@eazel.com> + Fixed bug 3157 (Going to a bogus URI crashes nautilus). + + * libnautilus-extensions/nautilus-directory-async.c: + (nautilus_directory_async_state_changed): Add a ref/unref to keep + the directory around even if call_when_ready results in the last + ref to the directory going away. + +2000-09-19 Darin Adler <darin@eazel.com> + Fixed bug 640 (icon cache never frees images (awaiting GdkPixbuf fix)). Also took care of bug 3145 (zillions of 'main_loops != NULL' assertion failures when quitting) and bug 3138 (Some code in diff --git a/libnautilus-extensions/nautilus-directory-async.c b/libnautilus-extensions/nautilus-directory-async.c index 7e1d1df88..1e521f361 100644 --- a/libnautilus-extensions/nautilus-directory-async.c +++ b/libnautilus-extensions/nautilus-directory-async.c @@ -2444,14 +2444,16 @@ start_or_stop_io (NautilusDirectory *directory) void nautilus_directory_async_state_changed (NautilusDirectory *directory) { - /* Check if any callbacks are satisifed and call them if they + /* Check if any callbacks are satisfied and call them if they * are. Do this last so that any changes done in start or stop * I/O functions immediately (not in callbacks) are taken into * consideration. If any callbacks are called, consider the * I/O state again so that we can release or cancel I/O that * is not longer needed once the callbacks are satisfied. */ + nautilus_directory_ref (directory); do { start_or_stop_io (directory); } while (call_ready_callbacks (directory)); + nautilus_directory_unref (directory); } diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c index 7e1d1df88..1e521f361 100644 --- a/libnautilus-private/nautilus-directory-async.c +++ b/libnautilus-private/nautilus-directory-async.c @@ -2444,14 +2444,16 @@ start_or_stop_io (NautilusDirectory *directory) void nautilus_directory_async_state_changed (NautilusDirectory *directory) { - /* Check if any callbacks are satisifed and call them if they + /* Check if any callbacks are satisfied and call them if they * are. Do this last so that any changes done in start or stop * I/O functions immediately (not in callbacks) are taken into * consideration. If any callbacks are called, consider the * I/O state again so that we can release or cancel I/O that * is not longer needed once the callbacks are satisfied. */ + nautilus_directory_ref (directory); do { start_or_stop_io (directory); } while (call_ready_callbacks (directory)); + nautilus_directory_unref (directory); } |