diff options
Diffstat (limited to 'src/util/container_slist.c')
-rw-r--r-- | src/util/container_slist.c | 72 |
1 files changed, 35 insertions, 37 deletions
diff --git a/src/util/container_slist.c b/src/util/container_slist.c index 2704713d4..7b85dc877 100644 --- a/src/util/container_slist.c +++ b/src/util/container_slist.c | |||
@@ -89,21 +89,21 @@ struct GNUNET_CONTAINER_SList | |||
89 | */ | 89 | */ |
90 | static struct GNUNET_CONTAINER_SList_Elem * | 90 | static struct GNUNET_CONTAINER_SList_Elem * |
91 | create_elem (enum GNUNET_CONTAINER_SListDisposition disp, const void *buf, | 91 | create_elem (enum GNUNET_CONTAINER_SListDisposition disp, const void *buf, |
92 | size_t len) | 92 | size_t len) |
93 | { | 93 | { |
94 | struct GNUNET_CONTAINER_SList_Elem *e; | 94 | struct GNUNET_CONTAINER_SList_Elem *e; |
95 | 95 | ||
96 | if (disp == GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT) | 96 | if (disp == GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT) |
97 | { | 97 | { |
98 | e = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_SList_Elem) + len); | 98 | e = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_SList_Elem) + len); |
99 | memcpy (&e[1], buf, len); | 99 | memcpy (&e[1], buf, len); |
100 | e->elem = (void *) &e[1]; | 100 | e->elem = (void *) &e[1]; |
101 | } | 101 | } |
102 | else | 102 | else |
103 | { | 103 | { |
104 | e = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_SList_Elem)); | 104 | e = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_SList_Elem)); |
105 | e->elem = (void *) buf; | 105 | e->elem = (void *) buf; |
106 | } | 106 | } |
107 | e->disp = disp; | 107 | e->disp = disp; |
108 | e->len = len; | 108 | e->len = len; |
109 | return e; | 109 | return e; |
@@ -119,8 +119,8 @@ create_elem (enum GNUNET_CONTAINER_SListDisposition disp, const void *buf, | |||
119 | */ | 119 | */ |
120 | void | 120 | void |
121 | GNUNET_CONTAINER_slist_add (struct GNUNET_CONTAINER_SList *l, | 121 | GNUNET_CONTAINER_slist_add (struct GNUNET_CONTAINER_SList *l, |
122 | enum GNUNET_CONTAINER_SListDisposition disp, | 122 | enum GNUNET_CONTAINER_SListDisposition disp, |
123 | const void *buf, size_t len) | 123 | const void *buf, size_t len) |
124 | { | 124 | { |
125 | struct GNUNET_CONTAINER_SList_Elem *e; | 125 | struct GNUNET_CONTAINER_SList_Elem *e; |
126 | 126 | ||
@@ -141,8 +141,8 @@ GNUNET_CONTAINER_slist_add (struct GNUNET_CONTAINER_SList *l, | |||
141 | */ | 141 | */ |
142 | void | 142 | void |
143 | GNUNET_CONTAINER_slist_add_end (struct GNUNET_CONTAINER_SList *l, | 143 | GNUNET_CONTAINER_slist_add_end (struct GNUNET_CONTAINER_SList *l, |
144 | enum GNUNET_CONTAINER_SListDisposition disp, | 144 | enum GNUNET_CONTAINER_SListDisposition disp, |
145 | const void *buf, size_t len) | 145 | const void *buf, size_t len) |
146 | { | 146 | { |
147 | struct GNUNET_CONTAINER_SList_Elem *e; | 147 | struct GNUNET_CONTAINER_SList_Elem *e; |
148 | 148 | ||
@@ -163,7 +163,7 @@ GNUNET_CONTAINER_slist_add_end (struct GNUNET_CONTAINER_SList *l, | |||
163 | */ | 163 | */ |
164 | void | 164 | void |
165 | GNUNET_CONTAINER_slist_append (struct GNUNET_CONTAINER_SList *dst, | 165 | GNUNET_CONTAINER_slist_append (struct GNUNET_CONTAINER_SList *dst, |
166 | struct GNUNET_CONTAINER_SList *src) | 166 | struct GNUNET_CONTAINER_SList *src) |
167 | { | 167 | { |
168 | struct GNUNET_CONTAINER_SList_Iterator i; | 168 | struct GNUNET_CONTAINER_SList_Iterator i; |
169 | 169 | ||
@@ -171,15 +171,14 @@ GNUNET_CONTAINER_slist_append (struct GNUNET_CONTAINER_SList *dst, | |||
171 | GNUNET_CONTAINER_slist_end (&i) != GNUNET_YES; | 171 | GNUNET_CONTAINER_slist_end (&i) != GNUNET_YES; |
172 | GNUNET_CONTAINER_slist_next (&i)) | 172 | GNUNET_CONTAINER_slist_next (&i)) |
173 | 173 | ||
174 | { | 174 | { |
175 | GNUNET_CONTAINER_slist_add (dst, | 175 | GNUNET_CONTAINER_slist_add (dst, |
176 | (i.elem->disp == | 176 | (i.elem->disp == |
177 | GNUNET_CONTAINER_SLIST_DISPOSITION_STATIC) | 177 | GNUNET_CONTAINER_SLIST_DISPOSITION_STATIC) ? |
178 | ? GNUNET_CONTAINER_SLIST_DISPOSITION_STATIC | 178 | GNUNET_CONTAINER_SLIST_DISPOSITION_STATIC : |
179 | : | 179 | GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, |
180 | GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT, | 180 | i.elem->elem, i.elem->len); |
181 | i.elem->elem, i.elem->len); | 181 | } |
182 | } | ||
183 | GNUNET_CONTAINER_slist_iter_destroy (&i); | 182 | GNUNET_CONTAINER_slist_iter_destroy (&i); |
184 | } | 183 | } |
185 | 184 | ||
@@ -236,13 +235,13 @@ GNUNET_CONTAINER_slist_clear (struct GNUNET_CONTAINER_SList *l) | |||
236 | 235 | ||
237 | e = l->head; | 236 | e = l->head; |
238 | while (e != NULL) | 237 | while (e != NULL) |
239 | { | 238 | { |
240 | n = e->next; | 239 | n = e->next; |
241 | if (e->disp == GNUNET_CONTAINER_SLIST_DISPOSITION_DYNAMIC) | 240 | if (e->disp == GNUNET_CONTAINER_SLIST_DISPOSITION_DYNAMIC) |
242 | GNUNET_free (e->elem); | 241 | GNUNET_free (e->elem); |
243 | GNUNET_free (e); | 242 | GNUNET_free (e); |
244 | e = n; | 243 | e = n; |
245 | } | 244 | } |
246 | l->head = NULL; | 245 | l->head = NULL; |
247 | l->tail = NULL; | 246 | l->tail = NULL; |
248 | l->length = 0; | 247 | l->length = 0; |
@@ -258,7 +257,7 @@ GNUNET_CONTAINER_slist_clear (struct GNUNET_CONTAINER_SList *l) | |||
258 | */ | 257 | */ |
259 | int | 258 | int |
260 | GNUNET_CONTAINER_slist_contains (const struct GNUNET_CONTAINER_SList *l, | 259 | GNUNET_CONTAINER_slist_contains (const struct GNUNET_CONTAINER_SList *l, |
261 | const void *buf, size_t len) | 260 | const void *buf, size_t len) |
262 | { | 261 | { |
263 | struct GNUNET_CONTAINER_SList_Elem *e; | 262 | struct GNUNET_CONTAINER_SList_Elem *e; |
264 | 263 | ||
@@ -315,8 +314,8 @@ GNUNET_CONTAINER_slist_erase (struct GNUNET_CONTAINER_SList_Iterator *i) | |||
315 | */ | 314 | */ |
316 | void | 315 | void |
317 | GNUNET_CONTAINER_slist_insert (struct GNUNET_CONTAINER_SList_Iterator *before, | 316 | GNUNET_CONTAINER_slist_insert (struct GNUNET_CONTAINER_SList_Iterator *before, |
318 | enum GNUNET_CONTAINER_SListDisposition disp, | 317 | enum GNUNET_CONTAINER_SListDisposition disp, |
319 | const void *buf, size_t len) | 318 | const void *buf, size_t len) |
320 | { | 319 | { |
321 | struct GNUNET_CONTAINER_SList_Elem *e; | 320 | struct GNUNET_CONTAINER_SList_Elem *e; |
322 | 321 | ||
@@ -369,7 +368,7 @@ GNUNET_CONTAINER_slist_end (struct GNUNET_CONTAINER_SList_Iterator *i) | |||
369 | */ | 368 | */ |
370 | void * | 369 | void * |
371 | GNUNET_CONTAINER_slist_get (const struct GNUNET_CONTAINER_SList_Iterator *i, | 370 | GNUNET_CONTAINER_slist_get (const struct GNUNET_CONTAINER_SList_Iterator *i, |
372 | size_t * len) | 371 | size_t * len) |
373 | { | 372 | { |
374 | if (len) | 373 | if (len) |
375 | *len = i->elem->len; | 374 | *len = i->elem->len; |
@@ -381,8 +380,7 @@ GNUNET_CONTAINER_slist_get (const struct GNUNET_CONTAINER_SList_Iterator *i, | |||
381 | * @param i iterator | 380 | * @param i iterator |
382 | */ | 381 | */ |
383 | void | 382 | void |
384 | GNUNET_CONTAINER_slist_iter_destroy (struct GNUNET_CONTAINER_SList_Iterator | 383 | GNUNET_CONTAINER_slist_iter_destroy (struct GNUNET_CONTAINER_SList_Iterator *i) |
385 | *i) | ||
386 | { | 384 | { |
387 | } | 385 | } |
388 | 386 | ||