summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2024-07-31 14:18:39 -0400
committerPeter Zhu <peter@peterzhu.ca>2024-08-06 10:19:50 -0400
commitced35800d48e671ed739c8451823c7d3180ef8ac (patch)
treedb9fec2f1f8ea81501a5722d13e80ec6f2febeea /array.c
parentc0938fd24c927954dbe5d42e70844b6a89516786 (diff)
Fix leak in warning of duplicate keys when Ripper#warn jumps
For example, the following code leaks: class MyRipper < Ripper def initialize(src, &blk) super(src) @blk = blk end def warn(msg, *args) = @blk.call(msg) end $VERBOSE = true def call_parse = MyRipper.new("if true\n end\n") { |msg| return msg }.parse 10.times do 500_000.times do call_parse end puts `ps -o rss= -p #{$$}` end Before: 34832 51952 69760 88048 105344 123040 141152 159152 176656 194272 After: 18400 20256 20272 20272 20272 20304 20368 20368 20368 20400
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/11288
Diffstat (limited to 'array.c')
0 files changed, 0 insertions, 0 deletions