diff options
author | Andrew Mahone <andrew.mahone@gmail.com> | 2009-06-03 08:19:32 +0000 |
---|---|---|
committer | Andrew Mahone <andrew.mahone@gmail.com> | 2009-06-03 08:19:32 +0000 |
commit | 1248a0dc1fe970951fdba063b88d8ad8c96db912 (patch) | |
tree | 1d544c2bf20d01eb4861b82df78f4a9ed904840a /apps/tagtree.c | |
parent | 2bedde17b6d841ee8910a71cf5343ec8c8fed98b (diff) | |
download | rockbox-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.c | 6 |
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 | ||