From d1e6a9c2ba8eafe7a08b81707dd2a3150dae8b7b Mon Sep 17 00:00:00 2001 From: "kr.angelov" Date: Tue, 17 Sep 2013 13:45:37 +0000 Subject: added order and equality for strings in libgu --- src/runtime/c/gu/string.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'src/runtime/c/gu/string.c') diff --git a/src/runtime/c/gu/string.c b/src/runtime/c/gu/string.c index 26b4f1f80..fb002d167 100644 --- a/src/runtime/c/gu/string.c +++ b/src/runtime/c/gu/string.c @@ -421,6 +421,17 @@ gu_string_eq(GuString s1, GuString s2) } +static bool +gu_string_eq_fn(GuEquality* self, const void* p1, const void* p2) +{ + (void) self; + const GuString* sp1 = p1; + const GuString* sp2 = p2; + return gu_string_eq(*sp1, *sp2); +} + +GuEquality gu_string_equality[1] = { { gu_string_eq_fn } }; + int gu_string_cmp(GuString s1, GuString s2) { @@ -478,21 +489,23 @@ gu_string_cmp(GuString s1, GuString s2) return 0; } -static GuHash -gu_string_hasher_hash(GuHasher* self, const void* p) +static int +gu_string_cmp_fn(GuOrder* self, const void* p1, const void* p2) { (void) self; - const GuString* sp = p; - return gu_string_hash(0, *sp); + const GuString* sp1 = p1; + const GuString* sp2 = p2; + return gu_string_cmp(*sp1, *sp2); } -static bool -gu_string_eq_fn(GuEquality* self, const void* p1, const void* p2) +GuOrder gu_string_order[1] = { { gu_string_cmp_fn } }; + +static GuHash +gu_string_hasher_hash(GuHasher* self, const void* p) { (void) self; - const GuString* sp1 = p1; - const GuString* sp2 = p2; - return gu_string_eq(*sp1, *sp2); + const GuString* sp = p; + return gu_string_hash(0, *sp); } GuHasher gu_string_hasher[1] = { -- cgit v1.2.3