Skip to content
  • nagachika's avatar
    a26b41bf
    merge revision(s) 37ed86fd: [Backport #20161] · a26b41bf
    nagachika authored
    	Fix memory leak in regexp grapheme clusters
    
    	[Bug #20161]
    
    	The cc->mbuf gets overwritten, so we need to free it to not leak memory.
    
    	For example:
    
    	    str = "hello world".encode(Encoding::UTF_32LE)
    
    	    10.times do
    	      1_000.times do
    	        str.grapheme_clusters
    	      end
    
    	      puts `ps -o rss= -p #{$$}`
    	    end
    
    	Before:
    
    	    15536
    	    15760
    	    15920
    	    16144
    	    16304
    	    16480
    	    16640
    	    16784
    	    17008
    	    17280
    
    	After:
    
    	    15584
    	    15584
    	    15760
    	    15824
    	    15888
    	    15888
    	    15888
    	    15888
    	    16048
    	    16112
    	---
    	 regparse.c | 3 ++-
    	 1 file changed, 2 insertions(+), 1 deletion(-)
    a26b41bf
    merge revision(s) 37ed86fd: [Backport #20161]
    nagachika authored
    	Fix memory leak in regexp grapheme clusters
    
    	[Bug #20161]
    
    	The cc->mbuf gets overwritten, so we need to free it to not leak memory.
    
    	For example:
    
    	    str = "hello world".encode(Encoding::UTF_32LE)
    
    	    10.times do
    	      1_000.times do
    	        str.grapheme_clusters
    	      end
    
    	      puts `ps -o rss= -p #{$$}`
    	    end
    
    	Before:
    
    	    15536
    	    15760
    	    15920
    	    16144
    	    16304
    	    16480
    	    16640
    	    16784
    	    17008
    	    17280
    
    	After:
    
    	    15584
    	    15584
    	    15760
    	    15824
    	    15888
    	    15888
    	    15888
    	    15888
    	    16048
    	    16112
    	---
    	 regparse.c | 3 ++-
    	 1 file changed, 2 insertions(+), 1 deletion(-)
Loading