Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
/**
 * \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);
	}
}