[svn:parrot] r45339 - branches/avl_string_cache/src/string
bacek at svn.parrot.org
bacek at svn.parrot.org
Wed Mar 31 05:46:14 UTC 2010
Author: bacek
Date: Wed Mar 31 05:46:14 2010
New Revision: 45339
URL: https://trac.parrot.org/parrot/changeset/45339
Log:
Finish string_node_compare implementation.
Modified:
branches/avl_string_cache/src/string/api.c
Modified: branches/avl_string_cache/src/string/api.c
==============================================================================
--- branches/avl_string_cache/src/string/api.c Wed Mar 31 05:45:54 2010 (r45338)
+++ branches/avl_string_cache/src/string/api.c Wed Mar 31 05:46:14 2010 (r45339)
@@ -723,9 +723,21 @@
return -1;
else if (lhs->length > rhs->length)
return 1;
- /* TODO Check encoding and charset */
- return strcmp(lhs->str, rhs->str);
+ /* Use pointer comparision here. encoding and charset are singletons */
+ if (lhs->encoding < rhs->encoding)
+ return -1;
+ else if (lhs->encoding > rhs->encoding)
+ return 1;
+
+ if (lhs->charset < rhs->charset)
+ return -1;
+ else if (lhs->charset > rhs->charset)
+ return 1;
+
+ /* At this point strings are in same encoding with same charset */
+ /* Just use memcmp */
+ return memcmp(lhs->str, rhs->str, lhs->length);
}
typedef TREE_HEAD(_Tree, avl_string_node_t) ConstStringTree;
More information about the parrot-commits
mailing list