mirror of
https://github.com/ruby/ruby.git
synced 2026-01-27 04:24:23 +00:00
[PRISM] Fix memory leak in constants
For example, the following code leaks:
code = 1000.times.map { |i| "var#{i} = 1" }.join("\n")
10.times do
1000.times do
RubyVM::InstructionSequence.compile_prism(code)
end
puts `ps -o rss= -p #{$$}`
end
Before:
70384
88032
103856
115712
125584
132768
144784
152624
165296
180608
After:
62368
78784
74512
87712
85072
77728
69424
74992
71264
81440
This commit is contained in:
parent
34adc07372
commit
5299672a5b
Notes:
git
2024-07-22 18:23:06 +00:00
@ -9744,6 +9744,8 @@ pm_parse_result_free(pm_parse_result_t *result)
|
||||
{
|
||||
if (result->parsed) {
|
||||
pm_node_destroy(&result->parser, result->node.ast_node);
|
||||
|
||||
xfree(result->node.constants);
|
||||
pm_scope_node_destroy(&result->node);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user