[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r14247 - gnunet/src/include
From: |
gnunet |
Subject: |
[GNUnet-SVN] r14247 - gnunet/src/include |
Date: |
Mon, 24 Jan 2011 21:53:23 +0100 |
Author: grothoff
Date: 2011-01-24 21:53:23 +0100 (Mon, 24 Jan 2011)
New Revision: 14247
Modified:
gnunet/src/include/gnunet_container_lib.h
Log:
assert element in/not-in list
Modified: gnunet/src/include/gnunet_container_lib.h
===================================================================
--- gnunet/src/include/gnunet_container_lib.h 2011-01-24 15:49:50 UTC (rev
14246)
+++ gnunet/src/include/gnunet_container_lib.h 2011-01-24 20:53:23 UTC (rev
14247)
@@ -617,6 +617,23 @@
/**
+ * Check if the map contains the given value under the given
+ * key.
+ *
+ * @param map the map
+ * @param key the key to test if a value exists for it
+ * @param value value to test for
+ * @return GNUNET_YES if such a value exists,
+ * GNUNET_NO if not
+ */
+int GNUNET_CONTAINER_multihashmap_contains_value (const struct
+ GNUNET_CONTAINER_MultiHashMap
+ *map,
+ const GNUNET_HashCode * key,
+ const void *value);
+
+
+/**
* Store a key-value pair in the map.
*
* @param map the map
@@ -690,6 +707,8 @@
* @param element element to insert
*/
#define GNUNET_CONTAINER_DLL_insert(head,tail,element) do { \
+ GNUNET_assert ( ( (element)->prev == NULL) && ((head) != (element))); \
+ GNUNET_assert ( ( (element)->next == NULL) && ((tail) != (element))); \
(element)->next = (head); \
(element)->prev = NULL; \
if ((tail) == NULL) \
@@ -698,6 +717,7 @@
(head)->prev = element; \
(head) = (element); } while (0)
+
/**
* Insert an element at the tail of a DLL. Assumes that head, tail and
* element are structs with prev and next fields.
@@ -707,6 +727,8 @@
* @param element element to insert
*/
#define GNUNET_CONTAINER_DLL_insert_tail(head,tail,element) do { \
+ GNUNET_assert ( ( (element)->prev == NULL) && ((head) != (element))); \
+ GNUNET_assert ( ( (element)->next == NULL) && ((tail) != (element))); \
(element)->prev = (tail); \
(element)->next = NULL; \
if ((head) == NULL) \
@@ -715,6 +737,7 @@
(tail)->next = element; \
(tail) = (element); } while (0)
+
/**
* Insert an element into a DLL after the given other element. Insert
* at the head if the other element is NULL.
@@ -725,6 +748,8 @@
* @param element element to insert
*/
#define GNUNET_CONTAINER_DLL_insert_after(head,tail,other,element) do { \
+ GNUNET_assert ( ( (element)->prev == NULL) && ((head) != (element))); \
+ GNUNET_assert ( ( (element)->next == NULL) && ((tail) != (element))); \
(element)->prev = (other); \
if (NULL == other) \
{ \
@@ -741,6 +766,7 @@
else \
(element)->next->prev = (element); } while (0)
+
/**
* Insert an element into a DLL before the given other element. Insert
* at the tail if the other element is NULL.
@@ -751,6 +777,8 @@
* @param element element to insert
*/
#define GNUNET_CONTAINER_DLL_insert_before(head,tail,other,element) do { \
+ GNUNET_assert ( ( (element)->prev == NULL) && ((head) != (element))); \
+ GNUNET_assert ( ( (element)->next == NULL) && ((tail) != (element))); \
(element)->next = (other); \
if (NULL == other) \
{ \
@@ -778,6 +806,8 @@
* @param element element to remove
*/
#define GNUNET_CONTAINER_DLL_remove(head,tail,element) do { \
+ GNUNET_assert ( ( (element)->prev != NULL) || ((head) == (element))); \
+ GNUNET_assert ( ( (element)->next != NULL) || ((tail) == (element))); \
if ((element)->prev == NULL) \
(head) = (element)->next; \
else \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r14247 - gnunet/src/include,
gnunet <=