in src/clds_singly_linked_list.c [354:378]
CLDS_SINGLY_LINKED_LIST_DELETE_RESULT clds_singly_linked_list_delete(CLDS_SINGLY_LINKED_LIST_HANDLE clds_singly_linked_list, CLDS_HAZARD_POINTERS_THREAD_HANDLE clds_hazard_pointers_thread, CLDS_SINGLY_LINKED_LIST_ITEM* item)
{
CLDS_SINGLY_LINKED_LIST_DELETE_RESULT result;
if (
/* Codes_SRS_CLDS_SINGLY_LINKED_LIST_01_015: [ If clds_singly_linked_list is NULL, clds_singly_linked_list_delete shall fail and return CLDS_SINGLY_LINKED_LIST_DELETE_ERROR. ]*/
(clds_singly_linked_list == NULL) ||
/* Codes_SRS_CLDS_SINGLY_LINKED_LIST_01_016: [ If clds_hazard_pointers_thread is NULL, clds_singly_linked_list_delete shall fail and return CLDS_SINGLY_LINKED_LIST_DELETE_ERROR. ]*/
(clds_hazard_pointers_thread == NULL) ||
/* Codes_SRS_CLDS_SINGLY_LINKED_LIST_01_017: [ If item is NULL, clds_singly_linked_list_delete shall fail and return CLDS_SINGLY_LINKED_LIST_DELETE_ERROR. ]*/
(item == NULL)
)
{
LogError("Invalid arguments: CLDS_SINGLY_LINKED_LIST_HANDLE clds_singly_linked_list=%p, CLDS_HAZARD_POINTERS_THREAD_HANDLE clds_hazard_pointers_thread=%p, CLDS_SINGLY_LINKED_LIST_ITEM* item=%p",
clds_singly_linked_list, clds_hazard_pointers_thread, item);
result = CLDS_SINGLY_LINKED_LIST_DELETE_ERROR;
}
else
{
/* Codes_SRS_CLDS_SINGLY_LINKED_LIST_01_014: [ clds_singly_linked_list_delete deletes an item from the list by its pointer. ]*/
result = internal_delete(clds_singly_linked_list, clds_hazard_pointers_thread, compare_item_by_ptr, item);
}
return result;
}