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
Ops.c:93:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListClear(&list);- In
Ops.c:117:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 4);- In
Ops.c:142:
typedef List(int) IntList;
IntList empty = ListInit(&alloc);
IntList singleton = ListInit(&alloc);- In
Ops.c:143:
typedef List(int) IntList;
IntList empty = ListInit(&alloc);
IntList singleton = ListInit(&alloc);
ListSort(&empty, compare_ints);- In
Ops.c:198:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 2);
ListPushBackR(&list, 1);- In
Ops.c:230:
typedef List(int) IntList;
IntList dst = ListInitWithDeepCopy(failing_copy_init, plain_copy_deinit, &alloc);
IntList src = ListInit(&alloc);
s_copy_calls = 0;- In
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
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
Insert.c:87:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int a = 10;
int b = 20;- In
Insert.c:123:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int arr[] = {1, 2, 3};- In
Insert.c:142:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int arr[] = {4, 5, 6};- In
Insert.c:188:
typedef List(int) IntList;
IntList dest = ListInit(&alloc);
IntList src = ListInitWithDeepCopy(tracked_copy_init, tracked_copy_deinit, &alloc);- In
Insert.c:218:
typedef List(int) IntList;
IntList dest_l = ListInit(&alloc);
IntList src_l = ListInit(&alloc);
IntList dest_r = ListInit(&alloc);- In
Insert.c:219:
typedef List(int) IntList;
IntList dest_l = ListInit(&alloc);
IntList src_l = ListInit(&alloc);
IntList dest_r = ListInit(&alloc);
IntList src_r = ListInit(&alloc);- In
Insert.c:220:
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);- In
Insert.c:221:
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);- In
Insert.c:222:
IntList dest_r = ListInit(&alloc);
IntList src_r = ListInit(&alloc);
IntList dest_a = ListInit(&alloc);
IntList src_a = ListInit(&alloc);- In
Insert.c:223:
IntList src_r = ListInit(&alloc);
IntList dest_a = ListInit(&alloc);
IntList src_a = ListInit(&alloc);
ListPushBackR(&dest_l, 1);- In
Insert.c:265:
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);- In
Insert.c:266:
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);- In
Insert.c:267:
IntList shallow_src = ListInit(&alloc);
IntList empty_dest = ListInit(&alloc);
IntList empty_src = ListInit(&alloc);
reset_counters();- In
Insert.c:301:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int arr[] = {7, 8, 9};- In
Type.c:22:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ValidateList(&list);- In
Type.c:68:
DefaultAllocator alloc = DefaultAllocatorInit();
List(int) list = ListInit(&alloc);
fill_decades(GENERIC_LIST(&list), 4);- In
Deadend.c:43:
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
- In
Deadend.c:64:
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 /
- In
Deadend.c:78:
GenericListNode node = {0};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list);- In
Deadend.c:98:
int value = 1;
GenericListNode node = {.next = NULL, .prev = NULL, .data = &value};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list);- In
Deadend.c:118:
int value = 1;
GenericListNode node = {.next = NULL, .prev = (GenericListNode *)1, .data = &value};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list);- In
Deadend.c:138:
int value = 1;
GenericListNode node = {.next = (GenericListNode *)1, .prev = NULL, .data = &value};
List(int) list = ListInit(get_test_alloc());
GenericList *g = GENERIC_LIST(&list);- In
Deadend.c:156:
WriteFmt("Testing ListPtrAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListPtrAt(&list, 0);- In
Deadend.c:165:
WriteFmt("Testing ListPtrAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListPtrAt(&list, 1);- In
Deadend.c:175:
WriteFmt("Testing ListAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
(void)ListAt(&list, 1);- In
Deadend.c:185:
WriteFmt("Testing ListNodePtrAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListNodePtrAt(&list, 0);- In
Deadend.c:194:
WriteFmt("Testing ListNodePtrAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListNodePtrAt(&list, 1);- In
Deadend.c:204:
WriteFmt("Testing ListNodeAt out of bounds\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
(void)ListNodeAt(&list, 1);- In
Deadend.c:214:
WriteFmt("Testing ListFirst on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListFirst(&list);- In
Deadend.c:223:
WriteFmt("Testing ListLast on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListLast(&list);- In
Deadend.c:232:
WriteFmt("Testing ListNodeAt on empty list\n");
List(int) list = ListInit(get_test_alloc());
(void)ListNodeAt(&list, 0);- In
Deadend.c:241:
WriteFmt("Testing ListInsertR out of range\n");
List(int) list = ListInit(get_test_alloc());
ListInsertR(&list, 10, 1);- In
Deadend.c:250:
WriteFmt("Testing ListRemove out of range\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListRemove(&list, NULL, 1);- In
Deadend.c:260:
WriteFmt("Testing ListPopFront on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListPopFront(&list, NULL);- In
Deadend.c:269:
WriteFmt("Testing ListPopBack on empty list\n");
List(int) list = ListInit(get_test_alloc());
ListPopBack(&list, NULL);- In
Deadend.c:278:
WriteFmt("Testing ListRemoveRange out of range\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListPushBackR(&list, 20);- In
Deadend.c:289:
WriteFmt("Testing ListSwapItems out of range\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListSwapItems(&list, 0, 1);- In
Deadend.c:299:
WriteFmt("Testing ListFind without compare function\n");
List(int) list = ListInit(get_test_alloc());
int key = 10;
ListPushBackR(&list, 10);- In
Deadend.c:310:
WriteFmt("Testing ListFind without key pointer\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListFind(&list, NULL, compare_ints);- In
Deadend.c:327:
WriteFmt("Testing ListSort without compare function\n");
List(int) list = ListInit(get_test_alloc());
ListPushBackR(&list, 10);
ListSort(&list, NULL);- In
Deadend.c:340:
WriteFmt("Testing get_node_for_list_iteration target == length\n");
List(int) list = ListInit(get_test_alloc());
FILL_EIGHT(&list);- In
Deadend.c:359:
WriteFmt("Testing get_node_random_access relative target == length aborts\n");
List(int) list = ListInit(get_test_alloc());
FILL_EIGHT(&list);- In
Deadend.c:381:
DefaultAllocator alloc = DefaultAllocatorInit();
List(int) list = ListInit(&alloc);
fill_decades(GENERIC_LIST(&list), 4);- In
Remove.c:50:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int removed = 0;- In
Remove.c:83:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int removed[2] = {0, 0};- In
Remove.c:117:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int prefix[2] = {0, 0};
int suffix[2] = {0, 0};- In
Remove.c:149:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int removed[3] = {0, 0, 0};- In
Foreach.c:37:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int reverse_values[5] = {0};
int reverse_i = 0;- In
Foreach.c:77:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int forward_range_sum = 0;
int reverse_range_sum = 0;- In
Foreach.c:114:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int count = 0;- In
Foreach.c:163:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int reverse_values[5] = {0};
int reverse_i = 0;- In
Foreach.c:207:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int forward_values[3] = {0};
int reverse_values[3] = {0};- In
Foreach.c:267:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
u64 count = 0;- In
Access.c:66:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
bool result = (ListLen(&list) == 0);- In
Access.c:96:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);- In
Access.c:126:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);- In
Access.c:170:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
int needle = 20;- In
Access.c:214:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
// 200 elements: value at index i is exactly i.
- In
Access.c:259:
DefaultAllocator alloc = DefaultAllocatorInit();
List(int) list = ListInit(&alloc);
fill_decades(GENERIC_LIST(&list), 9);- In
Access.c:281:
DefaultAllocator alloc = DefaultAllocatorInit();
List(int) list = ListInit(&alloc);
fill_decades(GENERIC_LIST(&list), 9);- In
Access.c:301:
DefaultAllocator alloc = DefaultAllocatorInit();
List(int) list = ListInit(&alloc);
fill_decades(GENERIC_LIST(&list), 9);- In
Access.c:322:
WriteFmt("Testing get_node_random_access head-walk origin\n");
List(int) list = ListInit(get_test_alloc());
FILL_EIGHT(&list);- In
Access.c:343:
WriteFmt("Testing get_node_random_access tail-walk origin\n");
List(int) list = ListInit(get_test_alloc());
FILL_EIGHT(&list);- In
Access.c:363:
WriteFmt("Testing get_node_for_list_iteration no-cursor resolution\n");
List(int) list = ListInit(get_test_alloc());
FILL_EIGHT(&list);- In
Access.c:391:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);
ListPushBackR(&list, 20);- In
Access.c:418:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);
ListPushBackR(&list, 20);- In
Access.c:446:
typedef List(int) IntList;
IntList list = ListInit(&alloc);
ListPushBackR(&list, 10);- In
Access.c:487:
DefaultAllocator alloc = DefaultAllocatorInit();
List(int) list = ListInit(&alloc);
fill_decades(GENERIC_LIST(&list), 9); // indices 0..8, tail value 80
Last updated on