ListInit
Description
Initialize a list. Inside a Scope block the allocator argument may be omitted (MisraScope is used). Otherwise pass a typed allocator handle or a raw Allocator *.
Usage example (Cross-references)
Usage examples (Cross-references)
DefaultAllocator alloc = DefaultAllocatorInit();
typedef List(int) LI;
LI li = ListInit(ALLOCATOR_OF(&alloc));
ListForeach(&li, i) {
(void)i;- In
List.Init.c:34:
typedef List(int) IntList;
IntList list_a = ListInit(&alloc);
IntList list_b = ListInitT(list_b, &alloc);
IntList list_c = ListInitWithDeepCopy(tracked_copy_init, tracked_copy_deinit, &alloc);- In
List.Init.c:67:
alloc.base.retry_limit = 23;
IntList list_a = ListInit(&alloc);
IntList list_b = ListInitT(list_b, &alloc);
IntList list_c = ListInitWithDeepCopy(tracked_copy_init, tracked_copy_deinit, &alloc);- In
List.Insert.c:50:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int a = 10;
int b = 20;- In
List.Insert.c:86:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int arr[] = {1, 2, 3};
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int arr[] = {4, 5, 6};
typedef List(int) IntList;
IntList dest = ListInit(&alloc);
IntList src = ListInitWithDeepCopy(tracked_copy_init, tracked_copy_deinit, &alloc);
typedef List(int) IntList;
IntList dest_l = ListInit(&alloc);
IntList src_l = ListInit(&alloc);
IntList dest_r = ListInit(&alloc); typedef List(int) IntList;
IntList dest_l = ListInit(&alloc);
IntList src_l = ListInit(&alloc);
IntList dest_r = ListInit(&alloc);
IntList src_r = ListInit(&alloc); IntList dest_l = ListInit(&alloc);
IntList src_l = ListInit(&alloc);
IntList dest_r = ListInit(&alloc);
IntList src_r = ListInit(&alloc);
IntList dest_a = ListInit(&alloc); IntList src_l = ListInit(&alloc);
IntList dest_r = ListInit(&alloc);
IntList src_r = ListInit(&alloc);
IntList dest_a = ListInit(&alloc);
IntList src_a = ListInit(&alloc); IntList dest_r = ListInit(&alloc);
IntList src_r = ListInit(&alloc);
IntList dest_a = ListInit(&alloc);
IntList src_a = ListInit(&alloc); IntList src_r = ListInit(&alloc);
IntList dest_a = ListInit(&alloc);
IntList src_a = ListInit(&alloc);
ListPushBackR(&dest_l, 1); typedef List(int) IntList;
IntList deep_dest = ListInitWithDeepCopy(tracked_copy_init, tracked_copy_deinit, &alloc);
IntList shallow_src = ListInit(&alloc);
IntList empty_dest = ListInit(&alloc);
IntList empty_src = ListInit(&alloc); IntList deep_dest = ListInitWithDeepCopy(tracked_copy_init, tracked_copy_deinit, &alloc);
IntList shallow_src = ListInit(&alloc);
IntList empty_dest = ListInit(&alloc);
IntList empty_src = ListInit(&alloc); IntList shallow_src = ListInit(&alloc);
IntList empty_dest = ListInit(&alloc);
IntList empty_src = ListInit(&alloc);
reset_counters();
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int reverse_values[5] = {0};
int reverse_i = 0;
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int forward_range_sum = 0;
int reverse_range_sum = 0;
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int count = 0;
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int reverse_values[5] = {0};
int reverse_i = 0;
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int forward_values[3] = {0};
int reverse_values[3] = {0};
typedef List(int) IntList;
IntList list = ListInit(&alloc);
u64 count = 0;- In
List.Ops.c:55:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListClear(&list);- In
List.Ops.c:79:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 4);- In
List.Ops.c:104:
typedef List(int) IntList;
IntList empty = ListInit(&alloc);
IntList singleton = ListInit(&alloc);- In
List.Ops.c:105:
typedef List(int) IntList;
IntList empty = ListInit(&alloc);
IntList singleton = ListInit(&alloc);
ListSort(&empty, compare_ints);- In
List.Access.c:35:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
bool result = (ListLen(&list) == 0);- In
List.Access.c:65:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);- In
List.Access.c:95:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int needle = 20;- In
List.Remove.c:50:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int removed = 0;- In
List.Remove.c:83:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int removed[2] = {0, 0};
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int prefix[2] = {0, 0};
int suffix[2] = {0, 0};
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int removed[3] = {0, 0, 0}; WriteFmt("Testing ValidateList on corrupt empty list\n");
List(int) list = ListInit(get_test_alloc());
// intentional bypass: ListHead is read-only, no public setter exists --
// plant a bogus head pointer on an empty list so ValidateList trips its
WriteFmt("Testing ValidateList on invalid magic\n");
List(int) list = ListInit(get_test_alloc());
// intentional bypass: __magic is the private sentinel ValidateList
// checks; scramble it directly to exercise the type-confusion /
GenericListNode node = {0};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list); int value = 1;
GenericListNode node = {.next = NULL, .prev = NULL, .data = &value};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list); int value = 1;
GenericListNode node = {.next = NULL, .prev = (GenericListNode *)1, .data = &value};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list); int value = 1;
GenericListNode node = {.next = (GenericListNode *)1, .prev = NULL, .data = &value};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list); WriteFmt("Testing ListPtrAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListPtrAt(&list, 0); WriteFmt("Testing ListPtrAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListPtrAt(&list, 1); WriteFmt("Testing ListAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
(void)ListAt(&list, 1); WriteFmt("Testing ListNodePtrAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListNodePtrAt(&list, 0); WriteFmt("Testing ListNodePtrAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListNodePtrAt(&list, 1); WriteFmt("Testing ListNodeAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
(void)ListNodeAt(&list, 1); WriteFmt("Testing ListFirst on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListFirst(&list); WriteFmt("Testing ListLast on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListLast(&list); WriteFmt("Testing ListNodeAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
(void)ListNodeAt(&list, 0); WriteFmt("Testing ListInsertR out of range\n");
List(int) list = ListInit(get_test_alloc());
ListInsertR(&list, 10, 1); WriteFmt("Testing ListRemove out of range\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListRemove(&list, NULL, 1); WriteFmt("Testing ListPopFront on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListPopFront(&list, NULL); WriteFmt("Testing ListPopBack on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListPopBack(&list, NULL); WriteFmt("Testing ListRemoveRange out of range\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListPushBackR(&list, 20); WriteFmt("Testing ListSwapItems out of range\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListSwapItems(&list, 0, 1); WriteFmt("Testing ListFind without compare function\n");
List(int) list = ListInit(get_test_alloc());
int key = 10;
ListPushBackR(&list, 10); WriteFmt("Testing ListFind without key pointer\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListFind(&list, NULL, compare_ints); WriteFmt("Testing ListSort without compare function\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListSort(&list, NULL);- In
List.Type.c:13:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ValidateList(&list);
Last updated on