ruby-changes:22798
From: nobu <ko1@a...>
Date: Tue, 28 Feb 2012 18:47:58 +0900 (JST)
Subject: [ruby-changes:22798] nobu:r34847 (trunk): * io.c (io_binwrite, rb_io_syswrite): use shared frozen source
nobu 2012-02-28 18:47:47 +0900 (Tue, 28 Feb 2012) New Revision: 34847 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34847 Log: * io.c (io_binwrite, rb_io_syswrite): use shared frozen source strings. Modified files: trunk/ChangeLog trunk/io.c Index: ChangeLog =================================================================== --- ChangeLog (revision 34846) +++ ChangeLog (revision 34847) @@ -1,5 +1,8 @@ -Tue Feb 28 18:33:30 2012 Nobuyoshi Nakada <nobu@r...> +Tue Feb 28 18:47:44 2012 Nobuyoshi Nakada <nobu@r...> + * io.c (io_binwrite, rb_io_syswrite): use shared frozen source + strings. + * io.c (io_fread, io_getpartial, rb_io_sysread): set buffer size after check if readable, which can cause thread switch. [ruby-dev:45297][Bug #6099] Index: io.c =================================================================== --- io.c (revision 34846) +++ io.c (revision 34847) @@ -1243,6 +1243,8 @@ io = tmp; if (RSTRING_LEN(str) == 0) return INT2FIX(0); + str = rb_str_new_frozen(str); + GetOpenFile(io, fptr); rb_io_check_writable(fptr); @@ -4219,6 +4221,8 @@ GetOpenFile(io, fptr); rb_io_check_writable(fptr); + str = rb_str_new_frozen(str); + if (fptr->wbuf.len) { rb_warn("syswrite for buffered IO"); } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/