Skip to content

Commit 9cf3d98

Browse files
committed
Free typevar tables when freeing parser
1 parent ee323ed commit 9cf3d98

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

ext/rbs_extension/parserstate.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,11 +387,24 @@ parserstate *alloc_parser(VALUE buffer, lexstate *lexer, int start_pos, int end_
387387
return parser;
388388
}
389389

390+
void free_typevar_tables(id_table *table) {
391+
while (table != NULL) {
392+
id_table *next = table->next;
393+
if (table->ids != NULL) {
394+
free(table->ids);
395+
}
396+
free(table);
397+
table = next;
398+
}
399+
}
400+
390401
void free_parser(parserstate *parser) {
391402
free(parser->lexstate);
392403
if (parser->last_comment) {
393404
free_comment(parser->last_comment);
394405
}
406+
407+
free_typevar_tables(parser->vars);
395408
rbs_constant_pool_free(&parser->constant_pool);
396409
free(parser);
397410
}

0 commit comments

Comments
 (0)