From 10a8e87ce579d7c6d73acdf0d37403902a4f372d Mon Sep 17 00:00:00 2001 From: normal Date: Sun, 16 Feb 2014 04:19:29 +0000 Subject: io.c (rb_f_backquote): trade volatile for manual recycle * io.c (rb_f_backquote): trade volatile for manual recycle rb_gc_force_recycle ensures object is visible until recycle git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'io.c') diff --git a/io.c b/io.c index e069239311..58688e5dbc 100644 --- a/io.c +++ b/io.c @@ -8227,7 +8227,7 @@ argf_readlines(int argc, VALUE *argv, VALUE argf) static VALUE rb_f_backquote(VALUE obj, VALUE str) { - volatile VALUE port; + VALUE port; VALUE result; rb_io_t *fptr; @@ -8239,6 +8239,8 @@ rb_f_backquote(VALUE obj, VALUE str) GetOpenFile(port, fptr); result = read_all(fptr, remain_size(fptr), Qnil); rb_io_close(port); + rb_io_fptr_finalize(fptr); + rb_gc_force_recycle(port); /* also guards from premature GC */ return result; } -- cgit v1.2.3