diff options
Diffstat (limited to 'src/free_token.c')
| -rw-r--r-- | src/free_token.c | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/free_token.c b/src/free_token.c index 66ab1dd..2292eb0 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/22 15:56:38 by chuhlig ### ########.fr */ +/* Updated: 2025/01/22 17:28:31 by dkaiser ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,6 +28,19 @@ 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); // Ensure content is freed + free(token);//maybe free token + token = NULL; +} + + void free_token_and_connect(t_token *token) { if (token->previous != NULL) @@ -38,14 +51,26 @@ 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); // Ensure content is freed + 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); } // void free_tokens(t_token *tokens) // { |
