Project

General

Profile

« Previous | Next » 

Revision 02d8bad6

Added by peterzhu2118 (Peter Zhu) almost 2 years ago

Fix memory leak in parser for invalid syntax

The strterm is leaked when there is invalid syntax.

For example:

10.times do 100_000.times do begin RubyVM::InstructionSequence.compile('private def foo = puts "Hello"') rescue SyntaxError end end puts `ps -o rss= -p #{$$}` end 

Before:

20384 26256 32592 36720 42016 47888 53248 57456 62928 65936 

After:

16720 17488 17616 17616 17616 17616 17616 17616 17616 16032 

Co-Authored-By: Kevin Newton