25 #include "dbus-internals.h"
26 #include "dbus-list.h"
27 #include "dbus-mempool.h"
28 #include "dbus-threads-internal.h"
55 alloc_link (
void *data)
61 if (list_pool ==
NULL)
65 if (list_pool ==
NULL)
119 link->
next = before_this_link;
120 link->
prev = before_this_link->
prev;
121 before_this_link->
prev = link;
124 if (before_this_link == *list)
142 link->
prev = after_this_link;
144 after_this_link->
next = link;
221 return alloc_link (data);
254 *list = (*list)->
next;
274 link = alloc_link (data);
278 link_before (list, *list, link);
298 *list = (*list)->
next;
313 link_before (list, *list, link);
316 #ifdef DBUS_BUILD_TESTS
326 _dbus_list_insert_before (
DBusList **list,
332 if (before_this_link ==
NULL)
336 link = alloc_link (data);
340 link_before (list, before_this_link, link);
362 if (after_this_link ==
NULL)
366 link = alloc_link (data);
370 link_after (list, after_this_link, link);
388 if (before_this_link ==
NULL)
391 link_before (list, before_this_link, link);
406 if (after_this_link ==
NULL)
409 link_after (list, after_this_link, link);
431 if (link->
data == data)
489 if (link->
data == data)
510 if (link->
next == link)
593 return (*list)->prev;
609 return (*list)->prev->data;
625 return (*list)->data;
695 #ifdef DBUS_BUILD_TESTS
704 _dbus_list_pop_last_link (
DBusList **list)
801 (* function) (link->
data, data);
816 return (*list !=
NULL &&
817 (*list)->next == *list);
822 #ifdef DBUS_BUILD_TESTS
823 #include "dbus-test.h"
837 if (link->
next == link)
852 while (link != *list);
863 is_ascending_sequence (
DBusList **list)
887 is_descending_sequence (
DBusList **list)
957 while (link1 && link2)
978 _dbus_list_test (
void)
1003 verify_list (&list1);
1004 verify_list (&list2);
1017 verify_list (&list1);
1018 verify_list (&list2);
1051 verify_list (&list1);
1052 verify_list (&list2);
1088 link1 = _dbus_list_pop_last_link (&list1);
1094 data1 = link1->
data;
1095 data2 = link2->
data;
1103 verify_list (&list1);
1104 verify_list (&list2);
1124 verify_list (&list1);
1125 verify_list (&list2);
1136 while (link2 !=
NULL)
1138 verify_list (&link2);
1148 while (link1 !=
NULL)
1150 verify_list (&link1);
1160 while (link1 !=
NULL)
1162 verify_list (&link1);
1193 verify_list (&list1);
1194 verify_list (&list2);
1225 verify_list (&list1);
1226 verify_list (&list2);
1235 while (list1 !=
NULL)
1238 verify_list (&list1);
1240 while (list2 !=
NULL)
1243 verify_list (&list2);
1257 while (link2 !=
NULL)
1266 verify_list (&list2);
1277 while (link1 !=
NULL)
1286 verify_list (&list1);
1309 verify_list (&list1);
1310 verify_list (©1);
1314 verify_list (&list2);
1315 verify_list (©2);
1329 verify_list (&list1);
1330 verify_list (©1);
1334 verify_list (&list2);
1335 verify_list (©2);
1342 _dbus_list_insert_before (&list1,
NULL,
1344 verify_list (&list1);
1347 _dbus_list_insert_before (&list1, list1,
1349 verify_list (&list1);
1353 _dbus_list_insert_before (&list1, list1->
next,
1355 verify_list (&list1);
1359 _dbus_list_insert_before (&list1,
NULL,
1361 verify_list (&list1);
1369 verify_list (&list1);
1374 verify_list (&list1);
1380 verify_list (&list1);
1386 verify_list (&list1);
1398 verify_list (&list1);