Cleanup
This commit is contained in:
+10
-4
@@ -224,6 +224,7 @@ Module* parser_parse(TokenStream* ts) {
|
||||
parser_next_token(p);
|
||||
|
||||
Module* module = malloc(sizeof(Module));
|
||||
memset(module, 0, sizeof(Module));
|
||||
if (!parse_declaration_module(p, module)) {
|
||||
goto fail;
|
||||
}
|
||||
@@ -265,20 +266,25 @@ void free_type_expression(TypeExpression* expr) {
|
||||
}
|
||||
|
||||
void parser_free(Module* module) {
|
||||
if (module == NULL) return;
|
||||
if (module == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (module->imports != NULL) {
|
||||
for(size_t i = 0; i < module->import_count; i++) {
|
||||
free((void*)module->imports[i].module_name);
|
||||
free(module->imports[i].module_name);
|
||||
}
|
||||
free(module->imports);
|
||||
}
|
||||
|
||||
if (module->aliases != NULL) {
|
||||
for(size_t i = 0; i < module->alias_count; i++) {
|
||||
free((void*)module->aliases[i].name);
|
||||
free(module->aliases[i].name);
|
||||
free_type_expression(&module->aliases[i].value);
|
||||
}
|
||||
free(module->aliases);
|
||||
}
|
||||
free((void*)module->name);
|
||||
|
||||
free(module->name);
|
||||
free(module);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user