diff --git a/lib/net/protocol.rb b/lib/net/protocol.rb index f241681983..a48200f6b3 100644 --- a/lib/net/protocol.rb +++ b/lib/net/protocol.rb @@ -156,7 +156,7 @@ module Net # :nodoc: read_bytes = 0 begin while read_bytes + rbuf_size < len - if s = rbuf_consume_all_shareable! + if s = rbuf_consume_all read_bytes += s.bytesize dest << s end @@ -177,7 +177,7 @@ module Net # :nodoc: read_bytes = 0 begin while true - if s = rbuf_consume_all_shareable! + if s = rbuf_consume_all read_bytes += s.bytesize dest << s end @@ -249,18 +249,8 @@ module Net # :nodoc: @rbuf.bytesize - @rbuf_offset end - # Warning: this method may share the buffer to avoid - # copying. The caller must no longer use the returned - # string once rbuf_fill has been called again - def rbuf_consume_all_shareable! - @rbuf_empty = true - buf = if @rbuf_offset == 0 - @rbuf - else - @rbuf.byteslice(@rbuf_offset..-1) - end - @rbuf_offset = @rbuf.bytesize - buf + def rbuf_consume_all + rbuf_consume if rbuf_size > 0 end def rbuf_consume(len = nil)