diff options
Diffstat (limited to 'src/free_token.c')
| -rw-r--r-- | src/free_token.c | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/free_token.c b/src/free_token.c index 512ba23..a63e750 100644 --- a/src/free_token.c +++ b/src/free_token.c @@ -6,7 +6,7 @@ /* By: chuhlig <chuhlig@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/27 14:38:57 by dkaiser #+# #+# */ -/* Updated: 2025/01/20 12:49:48 by chuhlig ### ########.fr */ +/* Updated: 2025/01/25 11:36:59 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -23,6 +23,18 @@ void free_token(t_token *token) token = NULL; } +void free_token2(t_token *token) +{ + if (token->previous != NULL) + token->previous->next = NULL; + if (token->next != NULL) + token->next->previous = NULL; + if (token->type == STRING_TOKEN && token->content.string != NULL) + free(token->content.string); + free(token); + token = NULL; +} + void free_token_and_connect(t_token *token) { if (token->previous != NULL) @@ -33,12 +45,24 @@ void free_token_and_connect(t_token *token) token = NULL; } +void free_token_and_connect2(t_token *token) +{ + if (token->previous != NULL) + token->previous->next = token->next; + if (token->next != NULL) + token->next->previous = token->previous; + if (token->type == STRING_TOKEN && token->content.string != NULL) + free(token->content.string); + free(token); + token = NULL; +} + void free_tokens(t_token *tokens) { while (tokens->next != NULL) { tokens = tokens->next; - free_token(tokens->previous); + free_token2(tokens->previous); } - free_token(tokens); + free_token2(tokens); } |
