diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2006-01-25 08:25:38 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2006-01-25 08:25:38 +0000 |
commit | 9f7e57c99d15b4489ed05d145f0ea53e69bccf45 (patch) | |
tree | 2ba429047dbbb5b83b5455d009970f9cccdfe0cb | |
parent | 0f77b057a1f2210addb40c6b528c917affda6720 (diff) | |
download | netsurf-9f7e57c99d15b4489ed05d145f0ea53e69bccf45.tar.gz netsurf-9f7e57c99d15b4489ed05d145f0ea53e69bccf45.tar.bz2 |
[project @ 2006-01-25 08:25:37 by jmb]
Fix stupid aborts due to not removing scheduled callbacks
svn path=/import/netsurf/; revision=2040
-rw-r--r-- | desktop/browser.c | 4 | ||||
-rw-r--r-- | render/html.c | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index d4cec3fcd..c585b14d0 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -570,6 +570,8 @@ void browser_window_stop(struct browser_window *bw) browser_window_callback, (intptr_t) bw, 0); } + schedule_remove(browser_window_refresh, bw); + browser_window_stop_throbber(bw); } @@ -658,6 +660,8 @@ void browser_window_destroy(struct browser_window *bw) browser_window_callback, (intptr_t) bw, 0); } + schedule_remove(browser_window_refresh, bw); + selection_destroy(bw->sel); history_destroy(bw->history); gui_window_destroy(bw->window); diff --git a/render/html.c b/render/html.c index c092df8c2..cfcb789ea 100644 --- a/render/html.c +++ b/render/html.c @@ -1374,9 +1374,13 @@ void html_destroy(struct content *c) /* Free objects */ for (i = 0; i != c->data.html.object_count; i++) { LOG(("object %i %p", i, c->data.html.object[i].content)); - if (c->data.html.object[i].content) + if (c->data.html.object[i].content) { content_remove_user(c->data.html.object[i].content, html_object_callback, (intptr_t) c, i); + if (c->data.html.object[i].content->type == CONTENT_HTML) + schedule_remove(html_object_refresh, + c->data.html.object[i].content); + } } } @@ -1415,6 +1419,7 @@ void html_close(struct content *c) { unsigned int i; c->data.html.bw = 0; + schedule_remove(html_object_refresh, c); for (i = 0; i != c->data.html.object_count; i++) { if (c->data.html.object[i].content == 0) continue; |