544 node = node->next; |
544 node = node->next; |
545 } |
545 } |
546 return n; |
546 return n; |
547 } |
547 } |
548 |
548 |
|
549 static int cx_ll_insert_element( |
|
550 struct cx_list_s *list, |
|
551 size_t index, |
|
552 void const *element |
|
553 ) { |
|
554 return 1 != cx_ll_insert_array(list, index, element, 1); |
|
555 } |
|
556 |
549 static int cx_ll_remove( |
557 static int cx_ll_remove( |
550 struct cx_list_s *list, |
558 struct cx_list_s *list, |
551 size_t index |
559 size_t index |
552 ) { |
560 ) { |
553 cx_linked_list *ll = (cx_linked_list *) list; |
561 cx_linked_list *ll = (cx_linked_list *) list; |
680 cx_linked_list_node *choice[2] = {node, node->prev}; |
688 cx_linked_list_node *choice[2] = {node, node->prev}; |
681 int result = cx_ll_insert_at(list, choice[prepend], elem); |
689 int result = cx_ll_insert_at(list, choice[prepend], elem); |
682 iter->index += prepend * (0 == result); |
690 iter->index += prepend * (0 == result); |
683 return result; |
691 return result; |
684 } else { |
692 } else { |
685 int result = cx_ll_insert_array(list, list->size, elem, 1) != 1; |
693 int result = cx_ll_insert_element(list, list->size, elem); |
686 iter->index = list->size; |
694 iter->index = list->size; |
687 return result; |
695 return result; |
688 } |
696 } |
689 } |
697 } |
690 |
698 |