From 026ba672aee12b00ac1388bf5f01eacd02919d09 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 15 Jun 2006 15:06:59 +0000 Subject: Fix handling of hosts with no paths attached (fixes #1505891) svn path=/trunk/netsurf/; revision=2620 --- content/urldb.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'content') diff --git a/content/urldb.c b/content/urldb.c index 43aff459f..e72df512c 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -1136,7 +1136,11 @@ void urldb_iterate_partial(const char *prefix, return; } - urldb_iterate_partial_path(&h->paths, slash + 1, callback); + if (h->paths.children) { + /* Have paths, iterate them */ + urldb_iterate_partial_path(&h->paths, slash + 1, + callback); + } } else { int len = strlen(prefix); @@ -1195,10 +1199,12 @@ bool urldb_iterate_partial_host(struct search_node *root, const char *prefix, callback)) return false; - /* and extract all paths attached to this host */ - if (!urldb_iterate_entries_path(&root->data->paths, - callback)) { - return false; + if (root->data->paths.children) { + /* and extract all paths attached to this host */ + if (!urldb_iterate_entries_path(&root->data->paths, + callback)) { + return false; + } } if (!urldb_iterate_partial_host(root->right, prefix, @@ -1294,8 +1300,12 @@ bool urldb_iterate_entries_host(struct search_node *parent, if (!urldb_iterate_entries_host(parent->left, callback)) return false; - if (!urldb_iterate_entries_path(&parent->data->paths, callback)) { - return false; + if (parent->data->paths.children) { + /* We have paths, so iterate them */ + if (!urldb_iterate_entries_path(&parent->data->paths, + callback)) { + return false; + } } if (!urldb_iterate_entries_host(parent->right, callback)) -- cgit v1.2.3