La sugerí en (#34), básicamente en vez de guardarme el índice para en otro momento hacer un remove de ese elemento en la lista, directamente me quedo con el puntero y cuando quiera quitarlo uso esta función.
/**
* @NAME: list_remove_element
* @DESC: Remueve al elemento de la lista recibido por parámetro. Retorna true
* si el elemento fue removido correctamente y false si no se encontró
*/
bool list_remove_element(t_list* self, void* element);
Esto es incluso es algo más seguro que guardar un índice, te previene de que la lista sea modificada y que el elemento que quieras mover no esté ahí. Sé que se puede hacer un remove_by_condition que le pase una inner function que compare ambos punteros, pero exponer esta opción puede ser más expresivo (aunque, en realidad, hace lo mismo).
También tuve que renombrar una función privada que tenía el mismo nombre (y un par más para que quede coherente xd), por eso hay más cambios.
La sugerí en (#34), básicamente en vez de guardarme el índice para en otro momento hacer un remove de ese elemento en la lista, directamente me quedo con el puntero y cuando quiera quitarlo uso esta función.
Esto es incluso es algo más seguro que guardar un índice, te previene de que la lista sea modificada y que el elemento que quieras mover no esté ahí. Sé que se puede hacer un
remove_by_condition
que le pase una inner function que compare ambos punteros, pero exponer esta opción puede ser más expresivo (aunque, en realidad, hace lo mismo).También tuve que renombrar una función privada que tenía el mismo nombre (y un par más para que quede coherente xd), por eso hay más cambios.