summaryrefslogtreecommitdiff
path: root/apps/tagtree.c
diff options
context:
space:
mode:
authorAndrew Mahone <andrew.mahone@gmail.com>2009-06-03 08:19:32 +0000
committerAndrew Mahone <andrew.mahone@gmail.com>2009-06-03 08:19:32 +0000
commit1248a0dc1fe970951fdba063b88d8ad8c96db912 (patch)
tree1d544c2bf20d01eb4861b82df78f4a9ed904840a /apps/tagtree.c
parent2bedde17b6d841ee8910a71cf5343ec8c8fed98b (diff)
downloadrockbox-1248a0dc1fe970951fdba063b88d8ad8c96db912.tar.gz
rockbox-1248a0dc1fe970951fdba063b88d8ad8c96db912.zip
Replace arrays of tags that are numeric/sorted/uniqued with bitfields flagging each tag that is a member of the set, and replace the membership tests with a shift and bitwise and. The test is still done inside a function on SH, as this saves some space vs the macro used on other targets.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21175 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/tagtree.c')
-rw-r--r--apps/tagtree.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 69a462fd06..9635052ef3 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -329,7 +329,7 @@ static bool read_clause(struct tagcache_search_clause *clause)
329 strcpy(clause->str, buf); 329 strcpy(clause->str, buf);
330 } 330 }
331 331
332 if (tagcache_is_numeric_tag(clause->tag)) 332 if (TAGCACHE_IS_NUMERIC(clause->tag))
333 { 333 {
334 clause->numeric = true; 334 clause->numeric = true;
335 clause->numeric_data = atoi(clause->str); 335 clause->numeric_data = atoi(clause->str);
@@ -1086,12 +1086,12 @@ static int retrieve_entries(struct tree_context *c, struct tagcache_search *tcs,
1086 /* Prevent duplicate entries in the search list. */ 1086 /* Prevent duplicate entries in the search list. */
1087 tagcache_search_set_uniqbuf(tcs, uniqbuf, UNIQBUF_SIZE); 1087 tagcache_search_set_uniqbuf(tcs, uniqbuf, UNIQBUF_SIZE);
1088 1088
1089 if (level || csi->clause_count[0] || tagcache_is_numeric_tag(tag)) 1089 if (level || csi->clause_count[0] || TAGCACHE_IS_NUMERIC(tag))
1090 sort = true; 1090 sort = true;
1091 1091
1092 for (i = 0; i < level; i++) 1092 for (i = 0; i < level; i++)
1093 { 1093 {
1094 if (tagcache_is_numeric_tag(csi->tagorder[i])) 1094 if (TAGCACHE_IS_NUMERIC(csi->tagorder[i]))
1095 { 1095 {
1096 static struct tagcache_search_clause cc; 1096 static struct tagcache_search_clause cc;
1097 1097