diff --git a/src/lexer/lexer_utils.c b/src/lexer/lexer_utils.c index 6c88a0c..1f40a69 100644 --- a/src/lexer/lexer_utils.c +++ b/src/lexer/lexer_utils.c @@ -259,12 +259,14 @@ struct token *new_token(char *begin, ssize_t size, struct token_info *info) void destroy_lexer_context(struct lexer_context *ctx) { + struct token *prev = ctx->previous_token; + struct token *cur = ctx->current_token; if (ctx == NULL) return; - if (ctx->previous_token != NULL) - free(ctx->previous_token); - if (ctx->current_token != NULL) - free(ctx->current_token); + if (prev != NULL) + free_token(&prev); + if (cur != NULL) + free_token(&cur); free(ctx); }