[前][次][番号順一覧][スレッド一覧]

ruby-changes:49546

From: normal <ko1@a...>
Date: Mon, 8 Jan 2018 09:34:47 +0900 (JST)
Subject: [ruby-changes:49546] normal:r61662 (trunk): net/protocol: use binary string buffers

normal	2018-01-08 09:34:42 +0900 (Mon, 08 Jan 2018)

  New Revision: 61662

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=61662

  Log:
    net/protocol: use binary string buffers
    
    Not an encoding expert, but this seems necessary for the next
    change.  All of the IO#read, IO#read_nonblock and related
    methods will return a binary string when given a length
    argument; so anything appended to these buffers via <<
    will be binary.

  Modified files:
    trunk/lib/net/protocol.rb
Index: lib/net/protocol.rb
===================================================================
--- lib/net/protocol.rb	(revision 61661)
+++ lib/net/protocol.rb	(revision 61662)
@@ -84,7 +84,7 @@ module Net # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/net/protocol.rb#L84
       @read_timeout = read_timeout
       @continue_timeout = continue_timeout
       @debug_output = debug_output
-      @rbuf = ''.dup
+      @rbuf = ''.b
     end
 
     attr_reader :io
@@ -114,7 +114,7 @@ module Net # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/net/protocol.rb#L114
 
     public
 
-    def read(len, dest = ''.dup, ignore_eof = false)
+    def read(len, dest = ''.b, ignore_eof = false)
       LOG "reading #{len} bytes..."
       read_bytes = 0
       begin
@@ -134,7 +134,7 @@ module Net # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/net/protocol.rb#L134
       dest
     end
 
-    def read_all(dest = ''.dup)
+    def read_all(dest = ''.b)
       LOG 'reading all...'
       read_bytes = 0
       begin
@@ -193,7 +193,7 @@ module Net # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/net/protocol.rb#L193
     def rbuf_consume(len)
       if len == @rbuf.size
         s = @rbuf
-        @rbuf = ''.dup
+        @rbuf = ''.b
       else
         s = @rbuf.slice!(0, len)
       end
@@ -340,7 +340,7 @@ module Net # :nodoc: https://github.com/ruby/ruby/blob/trunk/lib/net/protocol.rb#L340
     end
 
     def using_each_crlf_line
-      @wbuf = ''.dup
+      @wbuf = ''.b
       yield
       if not @wbuf.empty?   # unterminated last line
         write0 dot_stuff(@wbuf.chomp) + "\r\n"

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]