sisoputnfrba / so-commons-library

TADs de uso comun en aplicaciones desarrolladas en C
http://sisoputnfrba.github.io/so-commons-library/
GNU General Public License v3.0
106 stars 174 forks source link

Listas: Remove element from pointer #138

Closed RaniAgus closed 2 years ago

RaniAgus commented 3 years ago

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.