summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--yarp/yarp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/yarp/yarp.c b/yarp/yarp.c
index db9a7ba562..0475c44836 100644
--- a/yarp/yarp.c
+++ b/yarp/yarp.c
@@ -12841,6 +12841,10 @@ yp_parser_free(yp_parser_t *parser) {
yp_comment_list_free(&parser->comment_list);
yp_constant_pool_free(&parser->constant_pool);
yp_newline_list_free(&parser->newline_list);
+
+ while (parser->lex_modes.index >= YP_LEX_STACK_SIZE) {
+ lex_mode_pop(parser);
+ }
}
// Parse the Ruby source associated with the given parser and return the tree.