From e0ba5089922f0827ae4115d5f94e4227628de2ff Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Tue, 11 Apr 2006 02:39:55 +0000 Subject: Store URLs explicitly in URL database for faster access. Iteration callbacks now passed url_data struct to remove need to look up svn path=/trunk/netsurf/; revision=2522 --- desktop/tree.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'desktop/tree.c') diff --git a/desktop/tree.c b/desktop/tree.c index ae4821e3c..5dd0617b7 100644 --- a/desktop/tree.c +++ b/desktop/tree.c @@ -894,7 +894,7 @@ void tree_delete_node(struct tree *tree, struct node *node, bool siblings) { f = e->next; if (e->text) { - /* we don't free non-editable titles */ + /* we don't free non-editable titles or URLs */ if (node->editable) free(e->text); else { @@ -903,7 +903,8 @@ void tree_delete_node(struct tree *tree, struct node *node, bool siblings) { urldb_reset_url_visit_data(e->text); } - if (e->data != TREE_ELEMENT_TITLE) + if (e->data != TREE_ELEMENT_TITLE && + e->data != TREE_ELEMENT_URL) free(e->text); } } @@ -1033,7 +1034,7 @@ struct node *tree_create_URL_node(struct node *parent, * edited and should never be freed. * * \param parent the node to link to - * \param url the URL (copied) + * \param url the URL * \param data the URL data to use * \return the node created, or NULL for failure */ @@ -1043,16 +1044,12 @@ struct node *tree_create_URL_node_shared(struct node *parent, struct node_element *element; char *title; - assert(data); - - /* If title isn't set, set it to the URL */ - if (!data->title) - urldb_set_url_title(url, url); + assert(url && data); if (data->title) title = data->title; else - return NULL; + title = url; node = tree_create_leaf_node(parent, title); if (!node) return NULL; @@ -1067,7 +1064,7 @@ struct node *tree_create_URL_node_shared(struct node *parent, tree_create_node_element(node, TREE_ELEMENT_LAST_VISIT); element = tree_create_node_element(node, TREE_ELEMENT_URL); if (element) - element->text = strdup(url); + element->text = url; tree_update_URL_node(node, url, data); tree_recalculate_node(node, false); -- cgit v1.2.3