diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2010-04-27 06:48:09 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2010-04-27 06:48:09 +0000 |
commit | 0de2013f253923a413ed80e1935a149eeea1a8c1 (patch) | |
tree | 6fc4daa177de805cca76f8b1c4ed8a94a0c6b059 /content/llcache.c | |
parent | 9c488e3d956e9cb2cb8106bf4c416511c044169f (diff) | |
download | netsurf-0de2013f253923a413ed80e1935a149eeea1a8c1.tar.gz netsurf-0de2013f253923a413ed80e1935a149eeea1a8c1.tar.bz2 |
Clean up caches on exit
svn path=/trunk/netsurf/; revision=10494
Diffstat (limited to 'content/llcache.c')
-rw-r--r-- | content/llcache.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/content/llcache.c b/content/llcache.c index d5b518403..33b447570 100644 --- a/content/llcache.c +++ b/content/llcache.c @@ -225,6 +225,48 @@ nserror llcache_initialise(llcache_query_callback cb, void *pw) } /* See llcache.h for documentation */ +void llcache_finalise(void) +{ + llcache_object *object, *next; + + /* Clean uncached objects */ + for (object = llcache_uncached_objects; object != NULL; object = next) { + llcache_object_user *user, *next_user; + + next = object->next; + + for (user = object->users; user != NULL; user = next_user) { + next_user = user->next; + + free(user); + } + + /* Fetch system has already been destroyed */ + object->fetch.fetch = NULL; + + llcache_object_destroy(object); + } + + /* Clean cached objects */ + for (object = llcache_cached_objects; object != NULL; object = next) { + llcache_object_user *user, *next_user; + + next = object->next; + + for (user = object->users; user != NULL; user = next_user) { + next_user = user->next; + + free(user); + } + + /* Fetch system has already been destroyed */ + object->fetch.fetch = NULL; + + llcache_object_destroy(object); + } +} + +/* See llcache.h for documentation */ nserror llcache_poll(void) { llcache_object *object; |