static tb_size_t tb_list_itor_last(tb_iterator_ref_t iterator) { // check tb_list_t* list = (tb_list_t*)iterator; tb_assert(list); // last return (tb_size_t)tb_list_entry_last(&list->head); }
tb_list_entry_remove_head(&list); tb_list_entry_remove_last(&list); // walk it tb_trace_i("remove: %lu", tb_list_entry_size(&list)); tb_for_all_if(tb_demo_entry_t*, item2, tb_list_entry_itor(&list), item2) { tb_trace_i("%lu", item2->data); } // trace tb_trace_i(""); // moveto entries tb_list_entry_ref_t head = tb_list_entry_head(&list); tb_list_entry_moveto_head(&list, tb_list_entry_last(&list)); tb_list_entry_moveto_tail(&list, head); // walk it tb_trace_i("moveto: %lu", tb_list_entry_size(&list)); tb_for_all_if(tb_demo_entry_t*, item3, tb_list_entry_itor(&list), item3) { tb_trace_i("%lu", item3->data); } // trace tb_trace_i(""); // clear entries tb_list_entry_clear(&list);