summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarin Adler <darin@src.gnome.org>2000-09-20 00:54:25 +0000
committerDarin Adler <darin@src.gnome.org>2000-09-20 00:54:25 +0000
commit25c1f5f791edb75640b2e2ad2ea6c1f3e27c352c (patch)
tree6ee9e7b62a140d909da4ef2d8d5f5c0a45195d78
parent1035b5ea668b2f85e6290e78e27da41948d57fb0 (diff)
downloadnautilus-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--ChangeLog9
-rw-r--r--libnautilus-extensions/nautilus-directory-async.c4
-rw-r--r--libnautilus-private/nautilus-directory-async.c4
3 files changed, 15 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index fc2b97a7f..43994e580 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
}