Skip to content

ListNodeData

Description

Payload pointer carried by a list node. Bare field read; the caller owns the null-check decision (use ListNodeNext / ListNodePrev chasing if NULL-tolerant traversal is wanted).

Parameters

Name Direction Description
node in List node to query.

Usage example (Cross-references)

Usage examples (Cross-references)
        ListNode(int) *null_node = NULL;
    
        bool result = node1 && ListNodeData(node1) && (*(int *)ListNodeData(node1) == 20);
        result      = result && begin && ListNodeData(begin) && (*(int *)ListNodeData(begin) == 10);
        result      = result && end && ListNodeData(end) && (*(int *)ListNodeData(end) == 40);
    
        bool result = node1 && ListNodeData(node1) && (*(int *)ListNodeData(node1) == 20);
        result      = result && begin && ListNodeData(begin) && (*(int *)ListNodeData(begin) == 10);
        result      = result && end && ListNodeData(end) && (*(int *)ListNodeData(end) == 40);
        result      = result && ListNodeData(&ListNodeAt(&list, 2)) && (*ListNodeData(&ListNodeAt(&list, 2)) == 30);
        bool result = node1 && ListNodeData(node1) && (*(int *)ListNodeData(node1) == 20);
        result      = result && begin && ListNodeData(begin) && (*(int *)ListNodeData(begin) == 10);
        result      = result && end && ListNodeData(end) && (*(int *)ListNodeData(end) == 40);
        result      = result && ListNodeData(&ListNodeAt(&list, 2)) && (*ListNodeData(&ListNodeAt(&list, 2)) == 30);
        result      = result && ListNodeData(&ListNodeFirst(&list)) && (*ListNodeData(&ListNodeFirst(&list)) == 10);
        result      = result && begin && ListNodeData(begin) && (*(int *)ListNodeData(begin) == 10);
        result      = result && end && ListNodeData(end) && (*(int *)ListNodeData(end) == 40);
        result      = result && ListNodeData(&ListNodeAt(&list, 2)) && (*ListNodeData(&ListNodeAt(&list, 2)) == 30);
        result      = result && ListNodeData(&ListNodeFirst(&list)) && (*ListNodeData(&ListNodeFirst(&list)) == 10);
        result      = result && ListNodeData(&ListNodeLast(&list)) && (*ListNodeData(&ListNodeLast(&list)) == 40);
        result      = result && end && ListNodeData(end) && (*(int *)ListNodeData(end) == 40);
        result      = result && ListNodeData(&ListNodeAt(&list, 2)) && (*ListNodeData(&ListNodeAt(&list, 2)) == 30);
        result      = result && ListNodeData(&ListNodeFirst(&list)) && (*ListNodeData(&ListNodeFirst(&list)) == 10);
        result      = result && ListNodeData(&ListNodeLast(&list)) && (*ListNodeData(&ListNodeLast(&list)) == 40);
        result      = result && ListNodeNext(ListNodeBegin(&list)) && ListNodeData(ListNodeNext(ListNodeBegin(&list))) &&
        result      = result && ListNodeData(&ListNodeAt(&list, 2)) && (*ListNodeData(&ListNodeAt(&list, 2)) == 30);
        result      = result && ListNodeData(&ListNodeFirst(&list)) && (*ListNodeData(&ListNodeFirst(&list)) == 10);
        result      = result && ListNodeData(&ListNodeLast(&list)) && (*ListNodeData(&ListNodeLast(&list)) == 40);
        result      = result && ListNodeNext(ListNodeBegin(&list)) && ListNodeData(ListNodeNext(ListNodeBegin(&list))) &&
                 (*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
        result      = result && ListNodeData(&ListNodeFirst(&list)) && (*ListNodeData(&ListNodeFirst(&list)) == 10);
        result      = result && ListNodeData(&ListNodeLast(&list)) && (*ListNodeData(&ListNodeLast(&list)) == 40);
        result      = result && ListNodeNext(ListNodeBegin(&list)) && ListNodeData(ListNodeNext(ListNodeBegin(&list))) &&
                 (*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
        result = result && ListNodePrev(ListNodeEnd(&list)) && ListNodeData(ListNodePrev(ListNodeEnd(&list))) &&
        result      = result && ListNodeData(&ListNodeLast(&list)) && (*ListNodeData(&ListNodeLast(&list)) == 40);
        result      = result && ListNodeNext(ListNodeBegin(&list)) && ListNodeData(ListNodeNext(ListNodeBegin(&list))) &&
                 (*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
        result = result && ListNodePrev(ListNodeEnd(&list)) && ListNodeData(ListNodePrev(ListNodeEnd(&list))) &&
                 (*ListNodeData(ListNodePrev(ListNodeEnd(&list))) == 30);
        result      = result && ListNodeNext(ListNodeBegin(&list)) && ListNodeData(ListNodeNext(ListNodeBegin(&list))) &&
                 (*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
        result = result && ListNodePrev(ListNodeEnd(&list)) && ListNodeData(ListNodePrev(ListNodeEnd(&list))) &&
                 (*ListNodeData(ListNodePrev(ListNodeEnd(&list))) == 30);
        result = result && (same == begin);
                 (*ListNodeData(ListNodeNext(ListNodeBegin(&list))) == 20);
        result = result && ListNodePrev(ListNodeEnd(&list)) && ListNodeData(ListNodePrev(ListNodeEnd(&list))) &&
                 (*ListNodeData(ListNodePrev(ListNodeEnd(&list))) == 30);
        result = result && (same == begin);
        result = result && rel_f2 && ListNodeData(rel_f2) && (*(int *)ListNodeData(rel_f2) == 30);
                 (*ListNodeData(ListNodePrev(ListNodeEnd(&list))) == 30);
        result = result && (same == begin);
        result = result && rel_f2 && ListNodeData(rel_f2) && (*(int *)ListNodeData(rel_f2) == 30);
        result = result && rel_b2 && ListNodeData(rel_b2) && (*(int *)ListNodeData(rel_b2) == 20);
        result = result && (ListNodeRelative(ListNodeBegin(&list), -1) == NULL);
        result = result && (same == begin);
        result = result && rel_f2 && ListNodeData(rel_f2) && (*(int *)ListNodeData(rel_f2) == 30);
        result = result && rel_b2 && ListNodeData(rel_b2) && (*(int *)ListNodeData(rel_b2) == 20);
        result = result && (ListNodeRelative(ListNodeBegin(&list), -1) == NULL);
        result = result && (ListNodeRelative(ListNodeEnd(&list), 1) == NULL);
        result = result && (removed == 40);
        result = result && list_matches(GENERIC_LIST(&list), (const int[]) {30}, 1);
        result = result && ListHead(&list) && ListNodeData(ListHead(&list)) && (*ListNodeData(ListHead(&list)) == 30);
        result = result && ListTail(&list) && ListNodeData(ListTail(&list)) && (*ListNodeData(ListTail(&list)) == 30);
        result = result && list_matches(GENERIC_LIST(&list), (const int[]) {30}, 1);
        result = result && ListHead(&list) && ListNodeData(ListHead(&list)) && (*ListNodeData(ListHead(&list)) == 30);
        result = result && ListTail(&list) && ListNodeData(ListTail(&list)) && (*ListNodeData(ListTail(&list)) == 30);
    
        ListDeinit(&list);
        result = result && (suffix[0] == 5) && (suffix[1] == 6);
        result = result && list_matches(GENERIC_LIST(&list), (const int[]) {3, 4}, 2);
        result = result && ListHead(&list) && ListNodeData(ListHead(&list)) && (*ListNodeData(ListHead(&list)) == 3);
        result = result && ListTail(&list) && ListNodeData(ListTail(&list)) && (*ListNodeData(ListTail(&list)) == 4);
        result = result && list_matches(GENERIC_LIST(&list), (const int[]) {3, 4}, 2);
        result = result && ListHead(&list) && ListNodeData(ListHead(&list)) && (*ListNodeData(ListHead(&list)) == 3);
        result = result && ListTail(&list) && ListNodeData(ListTail(&list)) && (*ListNodeData(ListTail(&list)) == 4);
    
        ListDeinit(&list);
Last updated on