aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/gnunet_container_lib.h2
-rw-r--r--src/util/container_multihashmap.c2
-rw-r--r--src/util/test_container_multihashmap.c14
3 files changed, 16 insertions, 2 deletions
diff --git a/src/include/gnunet_container_lib.h b/src/include/gnunet_container_lib.h
index a6a0e519d..87249faca 100644
--- a/src/include/gnunet_container_lib.h
+++ b/src/include/gnunet_container_lib.h
@@ -728,7 +728,7 @@ GNUNET_CONTAINER_multihashmap_iterator_create (const struct GNUNET_CONTAINER_Mul
728 */ 728 */
729int 729int
730GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter, 730GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter,
731 struct GNUNET_HashCode *key, void **value); 731 struct GNUNET_HashCode *key, const void **value);
732 732
733 733
734/** 734/**
diff --git a/src/util/container_multihashmap.c b/src/util/container_multihashmap.c
index bd22732be..1cd699dff 100644
--- a/src/util/container_multihashmap.c
+++ b/src/util/container_multihashmap.c
@@ -838,7 +838,7 @@ GNUNET_CONTAINER_multihashmap_iterator_create (const struct GNUNET_CONTAINER_Mul
838 */ 838 */
839int 839int
840GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter, 840GNUNET_CONTAINER_multihashmap_iterator_next (struct GNUNET_CONTAINER_MultiHashMapIterator *iter,
841 struct GNUNET_HashCode *key, void **value) 841 struct GNUNET_HashCode *key, const void **value)
842{ 842{
843 /* make sure nobody modified the map */ 843 /* make sure nobody modified the map */
844 GNUNET_assert (iter->modification_counter == iter->map->modification_counter); 844 GNUNET_assert (iter->modification_counter == iter->map->modification_counter);
diff --git a/src/util/test_container_multihashmap.c b/src/util/test_container_multihashmap.c
index ff50df117..a0d29c606 100644
--- a/src/util/test_container_multihashmap.c
+++ b/src/util/test_container_multihashmap.c
@@ -37,6 +37,8 @@ testMap (int i)
37 struct GNUNET_CONTAINER_MultiHashMap *m; 37 struct GNUNET_CONTAINER_MultiHashMap *m;
38 struct GNUNET_HashCode k1; 38 struct GNUNET_HashCode k1;
39 struct GNUNET_HashCode k2; 39 struct GNUNET_HashCode k2;
40 struct GNUNET_CONTAINER_MultiHashMapIterator *iter;
41 struct GNUNET_HashCode key_ret;
40 const char *ret; 42 const char *ret;
41 int j; 43 int j;
42 44
@@ -79,11 +81,23 @@ testMap (int i)
79 CHECK (2 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k1, NULL, NULL)); 81 CHECK (2 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k1, NULL, NULL));
80 CHECK (0 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k2, NULL, NULL)); 82 CHECK (0 == GNUNET_CONTAINER_multihashmap_get_multiple (m, &k2, NULL, NULL));
81 CHECK (2 == GNUNET_CONTAINER_multihashmap_iterate (m, NULL, NULL)); 83 CHECK (2 == GNUNET_CONTAINER_multihashmap_iterate (m, NULL, NULL));
84 iter = GNUNET_CONTAINER_multihashmap_iterator_create (m);
85 CHECK (GNUNET_YES == GNUNET_CONTAINER_multihashmap_iterator_next (iter, &key_ret, (const void **)&ret));
86 CHECK (0 == memcmp (&key_ret, &k1, sizeof (key_ret)));
87 CHECK (GNUNET_YES == GNUNET_CONTAINER_multihashmap_iterator_next (iter, &key_ret, (const void **)&ret));
88 CHECK (0 == memcmp (&key_ret, &k1, sizeof (key_ret)));
89 CHECK (GNUNET_NO == GNUNET_CONTAINER_multihashmap_iterator_next (iter, NULL, NULL));
90
82 CHECK (2 == GNUNET_CONTAINER_multihashmap_remove_all (m, &k1)); 91 CHECK (2 == GNUNET_CONTAINER_multihashmap_remove_all (m, &k1));
83 for (j = 0; j < 1024; j++) 92 for (j = 0; j < 1024; j++)
84 CHECK (GNUNET_OK == 93 CHECK (GNUNET_OK ==
85 GNUNET_CONTAINER_multihashmap_put (m, &k1, "v2", 94 GNUNET_CONTAINER_multihashmap_put (m, &k1, "v2",
86 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE)); 95 GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE));
96 iter = GNUNET_CONTAINER_multihashmap_iterator_create (m);
97 for (j = 0; j < GNUNET_CONTAINER_multihashmap_size (m); j++)
98 CHECK (GNUNET_YES == GNUNET_CONTAINER_multihashmap_iterator_next (iter, NULL, NULL));
99 CHECK (GNUNET_NO == GNUNET_CONTAINER_multihashmap_iterator_next (iter, NULL, NULL));
100
87 GNUNET_CONTAINER_multihashmap_destroy (m); 101 GNUNET_CONTAINER_multihashmap_destroy (m);
88 return 0; 102 return 0;
89} 103}