summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/02/04/hash.c2
-rw-r--r--src/02/04/hash.h7
-rw-r--r--src/02/04/hash_test.c2
3 files changed, 8 insertions, 3 deletions
diff --git a/src/02/04/hash.c b/src/02/04/hash.c
index 01942ed..4bf679c 100644
--- a/src/02/04/hash.c
+++ b/src/02/04/hash.c
@@ -61,7 +61,7 @@ void *hash_get(Hash *hash, int key)
return node->value;
}
-void hash_set(Hash *hash, int key, void *value)
+void hash_set(Hash *hash, int key, void **value)
{
node_inspect(hash->head);
int bucket = to_hash(key);
diff --git a/src/02/04/hash.h b/src/02/04/hash.h
index 24ae331..a0244ea 100644
--- a/src/02/04/hash.h
+++ b/src/02/04/hash.h
@@ -4,9 +4,14 @@ typedef struct node {
} Node;
typedef struct {
+ int key;
+ void *value;
+} Tuple;
+
+typedef struct {
Node *head;
} Hash;
Hash *hash_init(int buckets);
void *hash_get(Hash *hash, int key);
-void hash_set(Hash *hash, int key, void *value);
+void hash_set(Hash *hash, int key, void **value);
diff --git a/src/02/04/hash_test.c b/src/02/04/hash_test.c
index 4579102..eb7f1d3 100644
--- a/src/02/04/hash_test.c
+++ b/src/02/04/hash_test.c
@@ -23,7 +23,7 @@ Ensure(HashTable, when_getting_a_values_for_a_key_that_has_been_inserted) {
int value = 100;
Hash *hash = hash_init(13);
- hash_set(hash, key, &value);
+ hash_set(hash, key, value);
assert_that(*(int *)hash_get(hash, key), is_equal_to(value));
}