summaryrefslogtreecommitdiff
path: root/navit/search.c
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-11-13 14:33:22 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-11-13 14:33:22 +0000
commit4ce6579c3bffc47d915145dc741abd24e7045f67 (patch)
tree4caccd3e25bb50339d9a41497b4cc8a1cdac105b /navit/search.c
parente4d7331879fba158de42f0904ae62f3532eb12c0 (diff)
downloadnavit-4ce6579c3bffc47d915145dc741abd24e7045f67.tar.gz
Add:binding_bus:Cleanup and Search functions
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2755 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/search.c')
-rw-r--r--navit/search.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/navit/search.c b/navit/search.c
index a7d000795..74cb8485c 100644
--- a/navit/search.c
+++ b/navit/search.c
@@ -30,7 +30,7 @@
struct search_list_level {
struct mapset *ms;
struct search_list_common *parent;
- struct attr attr;
+ struct attr *attr;
int partial;
int selected;
struct mapset_search *search;
@@ -115,10 +115,8 @@ search_list_search(struct search_list *this_, struct attr *search_attr, int part
this_->result.id=0;
this_->level=level;
le=&this_->levels[level];
- le->attr=*search_attr;
- if (search_attr->type != attr_country_id)
- le->attr.u.str=g_strdup(search_attr->u.str);
search_list_search_free(this_, level);
+ le->attr=attr_dup(search_attr);
le->partial=partial;
if (level > 0) {
le=&this_->levels[level-1];
@@ -360,6 +358,7 @@ search_list_search_free(struct search_list *sl, int level)
next=g_list_next(curr);
curr=next;
}
+ attr_free(le->attr);
g_list_free(le->list);
le->list=NULL;
le->curr=NULL;
@@ -450,8 +449,8 @@ search_list_get_result(struct search_list *this_)
}
if (le->parent)
dbg(1,"mapset_search_new with item(%d,%d)\n", le->parent->item.id_hi, le->parent->item.id_lo);
- dbg(1,"attr=%s\n", attr_to_name(le->attr.type));
- le->search=mapset_search_new(this_->ms, &le->parent->item, &le->attr, le->partial);
+ dbg(1,"attr=%s\n", attr_to_name(le->attr->type));
+ le->search=mapset_search_new(this_->ms, &le->parent->item, le->attr, le->partial);
le->hash=g_hash_table_new(search_item_hash_hash, search_item_hash_equal);
}
dbg(1,"le->search=%p\n", le->search);