From 43d34d2473917521376f7d56126779f941205105 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C5=99emysl=20Janouch?=
Date: Fri, 18 Jul 2014 19:51:15 +0200
Subject: Add a LIST_HEADER macro
To save us from specifying the `next' and `prev' pointers all the time.
It's not perfect, just a tiny bit better.
---
src/common.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
(limited to 'src/common.c')
diff --git a/src/common.c b/src/common.c
index 4b72e39..96548d9 100644
--- a/src/common.c
+++ b/src/common.c
@@ -254,7 +254,9 @@ xstrndup (const char *s, size_t n)
// --- Double-linked list helpers ----------------------------------------------
-// The links of the list need to have the members `prev' and `next'.
+#define LIST_HEADER(type) \
+ struct type *next; \
+ struct type *prev;
#define LIST_PREPEND(head, link) \
BLOCK_START \
@@ -562,8 +564,7 @@ error_propagate (struct error **destination, struct error *source)
struct str_map_link
{
- struct str_map_link *next; ///< The next link in a chain
- struct str_map_link *prev; ///< The previous link in a chain
+ LIST_HEADER (str_map_link)
void *data; ///< Payload
size_t key_length; ///< Length of the key without '\0'
--
cgit v1.2.3