bool test_r_list_length(void) { RList* list = r_list_new (); RList* list2 = r_list_new (); RListIter *iter; int count = 0; int test1 = 33508; int test2 = 33480; int test3 = 33964; // Put in not sorted order. r_list_append (list, (void*)&test1); r_list_append (list, (void*)&test3); r_list_append (list, (void*)&test2); iter = list->head; while (iter) { count++; iter = iter->n; } mu_assert_eq (list->length, 3, "First length check"); r_list_delete_data (list, (void*)&test1); mu_assert_eq (list->length, 2, "Second length check"); r_list_append (list, (void*)&test1); mu_assert_eq (list->length, 3, "Third length check"); r_list_pop (list); mu_assert_eq (list->length, 2, "Fourth length check"); r_list_pop_head (list); mu_assert_eq (list->length, 1, "Fifth length check"); r_list_insert (list, 2, (void*)&test2); mu_assert_eq (list->length, 2, "Sixth length check"); r_list_prepend (list, (void*)&test3); mu_assert_eq (list->length, 3, "Seventh length check"); r_list_del_n (list, 2); mu_assert_eq (list->length, 2, "Eighth length check"); r_list_append (list2, (void*)&test1); r_list_append (list2, (void*)&test3); r_list_append (list2, (void*)&test2); r_list_join (list, list2); mu_assert_eq (list->length, 5, "Ninth length check"); iter = list->head; count = 0; while (iter) { count++; iter = iter->n; } mu_assert_eq (list->length, count, "Tenth length check"); r_list_free (list); r_list_free (list2); mu_end; }
R_API int r_mixed_del (RMixed *m, void *p) { int i; r_list_delete_data (m->list, p); for (i=0; i<RMIXED_MAXKEYS; i++) { ut64 value = r_mixed_get_value (i, m->keys[i]->size, p); if (!m->keys[i]) continue; switch (m->keys[i]->size) { case 1: case 2: case 4: r_hashtable_remove (m->keys[i]->hash.ht, (ut32)value); break; case 8: r_hashtable64_remove (m->keys[i]->hash.ht64, value); break; } } return false; }
/** * \brief Remove a logging callback * \param cbfunc RLogCallback style function to be called */ R_API void r_log_del_callback(RLogCallback cbfunc) { if (log_cbs) { r_list_delete_data (log_cbs, cbfunc); } }