Beispiel #1
0
size_t list_pop_back_string(struct list_table* table, size_t lid)
{
	if(!table) return 0;

	struct list_descriptor* desc = find_descriptor(table, lid);

	if(!desc) return 0;

	void* value = remove_list_element(desc, desc->list_size - 1);
	size_t casted_value = *((size_t*)value);
	free(value);
	return casted_value;
}
Beispiel #2
0
char list_pop_back_char(struct list_table* table, size_t lid)
{
	if(!table) return '\0';

	struct list_descriptor* desc = find_descriptor(table, lid);

	if(!desc) return '\0';

	void* value = remove_list_element(desc, desc->list_size - 1);
	char casted_value = *((char*)value);
	free(value);
	return casted_value;
}
Beispiel #3
0
bool list_pop_front_bool(struct list_table* table, size_t lid)
{
	if(!table) return 0;

	struct list_descriptor* desc = find_descriptor(table, lid);

	if(!desc) return 0;

	void* value = remove_list_element(desc, 0);
	bool casted_value = *((bool*)value);
	free(value);
	return casted_value;
}
Beispiel #4
0
char list_remove_char(struct list_table* table, size_t lid, size_t pos)
{
	if(!table) return 0;

	struct list_descriptor* desc = find_descriptor(table, lid);

	if(!desc) return 0;

	void* value = remove_list_element(desc, pos);
	char casted_value = *((char*)value);
	free(value);
	return casted_value;
}
Beispiel #5
0
void* mxf_remove_list_element(MXFList *list, void *info, eq_func_type eqFunc)
{
    MXFListElement *element = list->elements;
    MXFListElement *prevElement = NULL;

    while (element && !eqFunc(element->data, info)) {
        prevElement = element;
        element = element->next;
    }
    if (!element)
        return NULL;

    return remove_list_element(list, element, prevElement);
}
Beispiel #6
0
void* mxf_remove_list_element_at_index(MXFList *list, size_t index)
{
    size_t currentIndex = 0;
    MXFListElement *element = list->elements;
    MXFListElement *prevElement = NULL;

    if (index == MXF_LIST_NPOS || index >= list->len)
        return NULL;

    while (currentIndex != index) {
        currentIndex++;
        prevElement = element;
        element = element->next;
    }

    return remove_list_element(list, element, prevElement);
}