diff options
author | Peter Zhu <[email protected]> | 2024-04-29 13:06:39 -0400 |
---|---|---|
committer | Peter Zhu <[email protected]> | 2024-04-29 14:04:42 -0400 |
commit | 95d036aaf07892f5b97ce744a42e8d541cad91ec (patch) | |
tree | 40443a5d11acd6ca749a8c0361f14950896a57b2 /ruby_parser.c | |
parent | d75bbba255e086d625429d5a1311cc4b4396c296 (diff) |
Fix memory leak in ruby_parser
For example:
10.times do
100_000.times do
eval("")
end
puts `ps -o rss= -p #{$$}`
end
Before:
19872
26480
32848
39504
45904
52672
59200
65760
72128
78496
After:
17328
20752
23664
28400
30656
34224
37424
40784
43328
46656
Diffstat (limited to 'ruby_parser.c')
-rw-r--r-- | ruby_parser.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ruby_parser.c b/ruby_parser.c index d8b7580e00..1e9f4d1899 100644 --- a/ruby_parser.c +++ b/ruby_parser.c @@ -518,6 +518,7 @@ parser_free(void *ptr) { struct ruby_parser *parser = (struct ruby_parser*)ptr; rb_ruby_parser_free(parser->parser_params); + xfree(parser); } static size_t |