fix memory leak in declaration and function

This commit is contained in:
2025-06-26 16:56:17 +01:00
parent a9d0ba0318
commit 6828cc5f1a
12 changed files with 196 additions and 42 deletions

View File

@@ -1,5 +1,6 @@
#include "function.h"
#include "../../memory.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -15,11 +16,17 @@ ParsedValue *create_parsed_function(char *name, DArray parameters,
return parsedValue;
}
void free_parameter(void *ptr) {
char** data = ptr;
free(*data);
}
void free_function(void *ptr) {
ParsedValue *parsedValue = ptr;
ParsedFunction *parsed = parsedValue->data;
free_parsed(parsed->body);
free(parsed->body);
free(parsed->name);
darray_free(&parsed->parameters, NULL);
darray_free(&parsed->parameters, free_parameter);
free(parsed);
}