Esempio n. 1
0
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);
}
Esempio n. 2
0
    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);