[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