You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2015/08/06 16:52:55 UTC

[1/2] lucy-clownfish git commit: Replace Hash's `Find_Key` with `Has_Key`.

Repository: lucy-clownfish
Updated Branches:
  refs/heads/master 8655f1881 -> 5343ab61c


Replace Hash's `Find_Key` with `Has_Key`.

Hash needs some way to indicate whether a key is present but mapped to
NULL -- hence, `Has_Key`.

`Find_Key` was used for a specific purpose in Lucy but is now obsolete.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/2c02650c
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/2c02650c
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/2c02650c

Branch: refs/heads/master
Commit: 2c02650ca7292e47390f4802e8b3454192cc6a6b
Parents: 1fc8c00
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Tue Aug 4 17:35:27 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Tue Aug 4 17:35:27 2015 -0700

----------------------------------------------------------------------
 runtime/core/Clownfish/Hash.c          | 8 ++++----
 runtime/core/Clownfish/Hash.cfh        | 7 +++----
 runtime/core/Clownfish/Test/TestHash.c | 8 +++-----
 3 files changed, 10 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2c02650c/runtime/core/Clownfish/Hash.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Hash.c b/runtime/core/Clownfish/Hash.c
index 54a4c26..e0e5d80 100644
--- a/runtime/core/Clownfish/Hash.c
+++ b/runtime/core/Clownfish/Hash.c
@@ -221,10 +221,10 @@ Hash_Delete_Utf8_IMP(Hash *self, const char *key, size_t key_len) {
     return Hash_Delete_IMP(self, key_buf);
 }
 
-String*
-Hash_Find_Key_IMP(Hash *self, String *key, size_t hash_sum) {
-    HashEntry *entry = SI_fetch_entry(self, key, hash_sum);
-    return entry ? entry->key : NULL;
+bool
+Hash_Has_Key_IMP(Hash *self, String *key) {
+    HashEntry *entry = SI_fetch_entry(self, key, Str_Hash_Sum(key));
+    return entry ? true : false;
 }
 
 Vector*

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2c02650c/runtime/core/Clownfish/Hash.cfh
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Hash.cfh b/runtime/core/Clownfish/Hash.cfh
index 95f4779..b2e1973 100644
--- a/runtime/core/Clownfish/Hash.cfh
+++ b/runtime/core/Clownfish/Hash.cfh
@@ -82,11 +82,10 @@ public final class Clownfish::Hash inherits Clownfish::Obj {
     public incremented nullable Obj*
     Delete_Utf8(Hash *self, const char *key, size_t key_len);
 
-    /** Search for a key which Equals the key supplied, and return the key
-     * rather than its value.
+    /** Indicate whether the supplied `key` is present.
      */
-    nullable String*
-    Find_Key(Hash *self, String *key, size_t hash_sum);
+    public bool
+    Has_Key(Hash *self, String *key);
 
     /** Return an Vector of pointers to the hash's keys.
      */

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/2c02650c/runtime/core/Clownfish/Test/TestHash.c
----------------------------------------------------------------------
diff --git a/runtime/core/Clownfish/Test/TestHash.c b/runtime/core/Clownfish/Test/TestHash.c
index 2fe1be3..6487df2 100644
--- a/runtime/core/Clownfish/Test/TestHash.c
+++ b/runtime/core/Clownfish/Test/TestHash.c
@@ -155,11 +155,9 @@ test_Keys_Values(TestBatchRunner *runner) {
     {
         String *forty = SSTR_WRAP_UTF8("40", 2);
         String *nope  = SSTR_WRAP_UTF8("nope", 4);
-        String *key = Hash_Find_Key(hash, forty, Str_Hash_Sum(forty));
-        TEST_TRUE(runner, Str_Equals(key, (Obj*)forty), "Find_Key");
-        key = Hash_Find_Key(hash, nope, Str_Hash_Sum(nope)),
-        TEST_TRUE(runner, key == NULL,
-                  "Find_Key returns NULL for non-existent key");
+        TEST_TRUE(runner, Hash_Has_Key(hash, forty), "Has_Key");
+        TEST_FALSE(runner, Hash_Has_Key(hash, nope),
+                   "Has_Key returns false for non-existent key");
     }
 
     DECREF(hash);


[2/2] lucy-clownfish git commit: Merge branch 'CLOWNFISH-58-hash-has-key'

Posted by ma...@apache.org.
Merge branch 'CLOWNFISH-58-hash-has-key'

Add the `Has_Key` method to Hash, allowing us to distinguish between a key
which has been mapped to NULL and a key which is not present.

Remove the obsolete and complex `Find_Key`.

This closes #30.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/5343ab61
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/5343ab61
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/5343ab61

Branch: refs/heads/master
Commit: 5343ab61c755194da83093492cdc8c359f6de507
Parents: 8655f18 2c02650
Author: Marvin Humphrey <ma...@rectangular.com>
Authored: Thu Aug 6 07:36:38 2015 -0700
Committer: Marvin Humphrey <ma...@rectangular.com>
Committed: Thu Aug 6 07:46:16 2015 -0700

----------------------------------------------------------------------
 runtime/core/Clownfish/Hash.c          | 8 ++++----
 runtime/core/Clownfish/Hash.cfh        | 7 +++----
 runtime/core/Clownfish/Test/TestHash.c | 8 +++-----
 3 files changed, 10 insertions(+), 13 deletions(-)
----------------------------------------------------------------------